Académique Documents
Professionnel Documents
Culture Documents
eMail: darkwarrior[nospam]linuxbsd.com.br
Data: 11/2004
authenticate {
authtype PAP {
pap
}
authtype CHAP {
chap
}
authtype MS-CHAP{
mschap
}
#pam
#unix
#authtype LDAP {
# ldap
#}
}
preacct {
preprocess
suffix
#files
}
accounting {
acct_unique
detail
#counter
unix
sql
radutmp
#sradutmp
}
session {
radutmp
}
Crie o banco de dados:
# mysql -u root -p
> CREATE DATABASE radius
E Agora jogue o arquivo db_mysql.sql para o MySQL
# mysql -u root -p senhadorootnomysql radius < db_mysql.sql
Se tudo correr OK, a base de dados está completa e vazia.
Precisamos popular nosso banco de dados, para que funcione as
conexões.
Logue no mysql:
# mysql -u root -p
> use radius;
Nossa base de teste será que criaremos um grupo de usuários chamado
discados
com dois usuários teste1 e teste2, vamos supor que esses usuários se
conectam em um RAS
e depois é jogado para o radius de nosso servidor.
Primero vamos criar os usuários:
> INSERT INTO `usergroup`(`id`, `UserName`, `GroupName`) VALUES ('',
'usuario1', 'discado');
> INSERT INTO `usergroup`(`id`, `UserName`, `GroupName`) VALUES ('',
'usuario2', 'discado');
Acima criamos dois usuários no grupo discado.
Agora criaremos as senhas para esses usuários:
> INSERT INTO `radcheck`(`id`, `UserName`, `Attribute`, `op`, `Value`)
VALUES('', 'usuario1', 'Password', '==', 'user1');
> INSERT INTO `radcheck`(`id`, `UserName`, `Attribute`, `op`, `Value`)
VALUES('', 'usuario2', 'Password', '==', 'user2');
usuario1 ficou com a senha user1.
usuario2 ficou com a senha user2.
Vamos atribuir o tipo de Autenticação Local:
> INSERT INTO `radgroupcheck`(`id`,`GroupName`,`Attribute`,`Op`,
`Value`) VALUES('','discado', 'Auth-Type', ':=', 'Local');
Criando as propriedades das conexões:
> INSERT INTO `radgroupreply`(`id`,`GroupName`, `Attribute`, `Op`,
`Value`, `Prio`) VALUES('', 'discado', 'Framed-Compression', ':=', 'Van-
Jacobsen-TCP-IP', '');
> INSERT INTO `radgroupreply`(`id`,`GroupName`, `Attribute`, `Op`,
`Value`, `Prio`) VALUES('', 'discado', 'Framed-Protocol', ':=', 'PPP', '');
> INSERT INTO `radgroupreply`(`id`,`GroupName`, `Attribute`, `Op`,
`Value`, `Prio`) VALUES('', 'discado', 'Service-Type', ':=', 'Framed-User',
'');
> INSERT INTO `radgroupreply`(`id`,`GroupName`, `Attribute`, `Op`,
`Value`, `Prio`) VALUES('', 'discado', 'Framed-MTU', ':=', '1500', '');
Precisamos agora configurar o arquivo dos clientes do radius, que pode
ser nosso "RAS" imaginário.
Mas poderia ser qualquer aparelho que iria mandar a autenticação para
nosso radius.
Edite o arquivo /etc/raddb/clients.conf:
# vi /etc/raddb/clients.conf
Vamos ao final do arquivo, poderemos verificar que no arquivo inteiro,
tem vários exemplos de configuração.
Colocaremos assim:
client 192.168.0.1 {
secret = senhateste
shortname = teletubies
nastype = other
}
Coloque o ip de sua máquina(procure não colocar o ip do localhost, pois
já tem uma configuração no clients.conf do 127.0.0.1 se não tiver outro
ip, muda configuração do 127.0.0.1 no clients.conf), coloca um secret
que será a comunicação com o cliente do radius e o servidor e
o tipo de equipamento que está sendo cliente, no nosso caso como
iremos testar de nossa máquina mesmo, vamos
colocar other, mas poderia ser um portslave, cisco, tc, max40xx... e por
aí vai.
Olhando o arquivo você vai ver que tem muito mais configurações para
fazer nesse quesito de clientes, mas
não irei me aprofundar nisso.
Ok, configuração básica feita, podemos testar para ver se está tudo
funcionando.
Digite:
# radiusd
Isso fará com que o radius inicie.
veja se o radius está rodando:
# ps aux radiusd
Se não estiver tente dar uma olhada nos logs ver o que pode ter saído
errado, e qualquer coisa
refaça todo o tutorial.
Vamos fazer nosso teste de autenticação.
# radtest usuário1 user1 192.168.0.1:1812 0 senhateste
Esse comando tem a seguinte sintaxe:
radtest nomeusuario senhausuario ipdoserverradius:porta
portadeconexao secretdoradius
Sending Access-Request of id 25 to 192.168.0.1:1812
User-Name = "usuario1"
User-Password = "user1"
NAS-IP-Address = 192.168.0.1
NAS-Port = 0
rad_recv: Access-Accept packet from host 192.168.0.1:1812, id=25,
length=44
Service-Type = Framed-User
Framed-Protocol = PPP
Framed-Compression = Van-Jacobson-TCP-IP
Framed-MTU = 1500
Se a saida de seu comando for parecida com a acima, provavelmente
seu radius está funcionando corretamente.
Este tutorial foi o mais básico possivel, procurando mostrar somente as
configurações mínimas para um funcionamento,
em breve irei fazer uma continuação deste, com mais explicações sobre
recursos e features do freeradius.