Versão PDF
Transcrição
Versão PDF
Campus Virtuais CookBook para Instalação e Configuração do RADIATOR Luís Guido FCCN Versão 0.21 05 de Dezembro de 2003 Instalação e Configuração do RADIATOR Controlo de Versões Versão Data Status Alterações 0.1 Draft Primeiro Draft 21/Out/2003 Acrescentado mais um exemplo no tópico “Parâmetros Adicionais“ 0.2 12/Nov/2003 Draft Mais um cenário de configuração: Cenário 3: Atribuição de VLAN via RADIUS Acrescentada a descrição a cada um dos cenários de configuração. 0.21 05/Dez/2003 Draft Corrigido os módulos de Perl referenciados para a instalação do RADIATOR (Perl Digest-MD para Perl Digest-MD5) Alterada a referência (*) da mesma página para o Perl Digest-MD4 – necessária para autenticação MS-CHAP e MS-CHAPv2 0.3 13/Dez/2004 Draft O FreeRadius passa a ser o software utilizado nos Campus Virtual. O Radiator apresenta-se como uma alternativa comercial Actualização geral das configurações para os Proxy’s Central e Local (retirar atributos considerados perigosos) Introdução A rede e-U é destinada exclusivamente a utilizadores autorizados. Desta foram, um mecanismo de controlo de acesso à rede e-U é necessário. Em cada Campus deverá existir pelo menos um servidor de autenticação, que será responsável pela validação das credenciais apresentadas por cada utilizador que se pretenda ligar à rede e-U. Este documento trata O RADIATOR da Open System Consultants (http://www.open.com.au) apresenta-se como uma alternativa comercial à solução FreeRadius, que foi a adoptada pelo projecto Campus Virtual. Este documento tem como objectivo fornecer um ponto de partida para a configuração do servidor de autenticação e accounting. Em primeiro lugar é descrita a forma de instalação do software para plataformas Unix onde são fornecidos links para informação adicional, para por exemplo instalar o software RADIATOR noutras plataformas ou obter mais informação acerca da instalação. Posteriormente é detalhada tanto quanto possível a configuração básica para permitir utilizar o RADIATOR como servidor de autenticação 802.1x (PEAP e TTLS). Na configuração são apresentados os dois modelos considerados possíveis de instalar nos Campus Virtuais: servidor único e hierarquia de servidores. Finalmente é disponibilizado um cenário de partida com os respectivos ficheiros de configuração. 1. Instalação O RADITATOR é compatível Unix, Windows e MAC. No entanto, neste documento a solução de instalação apresentada é baseada em Unix (Linux). O processo de instalação deverá ser compatível com outras versões de Unix. Para obter informações de como instalar o RADIATOR em plataformas não Unix consultar: http://www.open.com.au/radiator/install.html . Acerca das especificações do software: http://www.open.com.au/radiator/technical.html A configuração apresentada deverá ser compatível para todas as plataformas suportadas pelo RADIATOR. Antes de proceder à instalação do software RADIATOR deve ser verificada se a seguinte lista de requisitos (instale o software que não se encontre instalado no sistema): Pré-requisitos para instalação Unix: • • • • • • • • • Perl 5 versão 5.005 ou posterior Módulo de Perl Digest-MD5 versão 2.12 ou posterior Módulo de Perl Digest-MD4 (*) OpenSSL versão 0.9.7 ou posterior (**) Módulo de Perl Net_SSLeay versão 0.22 ou posterior (**) Módulo de Perl Digest-HMAC versão 1.01 ou posterior (**) Módulo de Perl Digest-SHA1 versão 2.01 ou posterior (**) Dependendo do tipo de instalação, poderão ser necessários outros módulos de Perl adicionais (ex: LDAP; SQL; etc.) Consultar o local onde efectuou a aquisição do software RADIATOR para patches relevantes para a instalação. (*) – Necessário para utilizar MS-CHAP ou MS-CHAPv2 (**) – Requisitos para autenticação 802.1x Instalação do RADITATOR Após instalação do software adicional necessário para a instalação do RADIATOR, devem ser executados os comandos seguintes: 1. Descomprimir o software (Unix) a. Crie uma directoria para descomprimir / compilar o software b. Coloque o pacote de software na directoria. c. Corra o comando ‘tar xzf Radiator-<versao>.tgz’ 2. Aplicar patches (caso existam patches relevantes para instalar): a. Verifique se os últimos patches / alerta de bugs são relevantes para a instalação que pretende b. Coloque o(s) patche(s) na directoria raiz do software RADIATOR c. Mude para a directoria raiz do software RADIATOR .1 Correr o comando ‘tar zxf <ficheiro_patche>’ .2 Repita o ponto anterior para cada um dos patches a aplicar 3. Compilar o RADIATOR a. Mude para a directoria raiz do software RADIATOR b. Corra os comandos .1 perl Makefile.pl .2 make test (deverão ter todos resultado ‘ok’) .3 efectuar os testes finais • correr um servidor de testes com : ‘perl radiusd -config_file goodies/simple.cfg’ • numa outra janela executar: ‘perl radpwtst -user fred -password fred’; o resultado deverá ser ‘OK’ • correr novamente com uma password errada ‘perl radpwtst user fred -password wrong’; o resultado deverá ser ‘Rejected’ 4. Instalar o software RADIATOR a. Caso todos os testes tenham sido bem sucedidos, corra o comando ‘make install’; o software RADIATOR será instalado no sistema: módulos de perl para o Radius na estrutura perl de sistema e os binários na directoria local de binários. 2. Configuração Para permitir a mobilidade entre campus universitários, é mandatório que todos os usernames utilizados sejam do tipo <utilizador>@<dominio_instituicao>. Ao utilizar o domínio da instituição; denominado por REALM; como parte integrante do username, o servidor RADIUS local sabe através do username, se deve ou não autenticar o utilizador localmente. Caso o domínio seja o seu, o utilizador é autenticado pelo RADIUS baseado nas credenciais apresentadas. Caso o utilizador apresente um domínio diferente do domínio local, o pedido de autenticação será encaminhado para o próximo servidor RADIUS da hierarquia (RADIUS Nacional por exemplo). Esta abordagem não invalida o servidor RADIUS fale com outros servidores RADIUS na hierarquia que não o Nacional. Existem essencialmente dois cenários possíveis nas Instituições: Servidor único na Instituição Hierarquia de servidores na Instituição Por exemplo: uma Instituição tem dois polos próximos com dois REALM’s distintos e cada um com um servidor RADIUS: O RADIUS do polo1 autentica o REALM ‘polo1.instituição.pt’; O RADIUS do polo2 autentica o REALM ‘polo2.instituição.pt’ Uma vez que é comum os alunos deslocarem-se entre polos, a instituição poderá ter interesse em que os servidores RADIUS comuniquem directamente entre si ou através de um proxy na instituição central e não via servidor RADIUS Nacional. Poderão inclusivamente ser definidos protocolos entre instituições para a implementação de cenários idênticos. Ficheiro de Configuração Formato dos comentários no ficheiro de configuração Os comentários são precedidos por um cardinal ‘#’ que deverá ser o primeiro caracter não espaço na linha. Caso exista um cardinal após a declaração de qualquer parâmetro, o cardinal é tido como literal e fará parte da própria configuração do parâmetro. Configuração genérica do RADIATOR # A configuração seguinte define os parâmetros gerais do RADIATOR, # tais como portos para autenticação e accounting; localização do # log, etc AuthPort AcctPort LogDir DbDir DictionaryFile PidFile Trace 0 1812 1813 /var/log/radius /etc/radius %D/dictionary,%D/dictionary.ascend /var/run/radiusd.pid Logging O RADIATOR disponibiliza um vasto leque de possibilidades para os mais variados cenários de logging. Desde log consolidado num único ficheiro; logging por handler (Handler; Realm; User-Name; Método EAP; etc.); log para um servidor SQL; log para o syslog; etc. No caso descrito apenas se considera a opção utilizada por omissão no RADIATOR (ficheiro com nome logfile colocado na ‘LogDir’ configurada). Para mais informações acerca das diversas possibilidades de logging consultar: http://www.open.com.au/radiator/ref.html#pgfId=358572 A opção Trace acima de 3 é desaconselhada em ambientes de produção por implicar uma carga significativa no servidor, bem como efectuar logging de informação apenas relevante para debugging. Para mais informações acerca do nível de trace consultar e outros parâmetros globais: http://www.open.com.au/radiator/ref.html#pgfId=406208 Dicionários Alguns Access Points enviam parâmetros (atributos) para os servidores de RADIUS (normalmente em records de accounting) que não fazem parte do dicionário standard, denominados por “vendor specific attributes”. Se esse for o caso do(s) AP’s do campus, podem ser carregados outros dicionários além dos fornecidos pelo RADIATOR. Eis um exemplo de um dicionário criado especificamente para um access point que envia “vendor specific attributes”: No ficheiro de log surgiram linhas com a seguinte informação: <date>: ERR: Attribute number 1 (vendor 14122) is not defined in your dictionary <date>: ERR: Attribute number 2 (vendor 14122) is not defined in your dictionary Foi efectuada uma pesquisa acerca do “vendor 14122”, foram descobertos quais os atributos para o “vendor” em questão, construído o dicionário em falta, e foi acrescentado na configuração do radiator (ficheiro radius.cfg) a referência ao novo dicionário. Alteração no radius.cfg ------DictionaryFile %D/dictionary,%D/dictionary.ascend,%D/dictionary.vendor14122 -------------------dictionary.vendor14122-----#VENDOR WISPr 14122 # # Standard attribute # VENDORATTR 14122 Location-ID 1 string # WISPr VENDORATTR 14122 Location-Name 2 string VENDORATTR 14122 Logoff-URL 3 string VENDORATTR 14122 Redirection-URL 4 string VENDORATTR 14122 Bandwidth-Min-Up 5 integer VENDORATTR 14122 Bandwidth-Min-Down 6 integer VENDORATTR 14122 Bandwidth-Max-Up 7 integer VENDORATTR 14122 Bandwidth-Max-Down 8 integer VENDORATTR 14122 Session-Terminate-Time 9 string VENDORATTR 14122 Session-Terminate-End-Of-Day 10 string VENDORATTR 14122 Billing-Class-Of-Service 11 string -----------Clientes (<Client>) São considerados clientes todas máquinas para os quais o servidor aceitará perdidos. Poderão ser definidos por IP ou por nome (é necessário que exista resolução a partir da máquina onde está instalado o RADIATOR). A menos que o cliente especial “DEFAULT” seja definido, todos os pedidos de clientes não implicitamente configurados serão ignorados. São clientes tanto os AP’s como outros servidores RADIUS que utilizem o servidor para efectuar pedidos de autenticação/accounting, estejam abaixo ou acima na hierarquia. Exemplo de configuração de clientes: #PARA TESTES DE LOOPBACK, radpwtst - loopback test <Client IP_LOCAL> Secret hotspot-local Identifier LoopbackTests DupInterval 0 </Client> # Access Points da Instituição #AP 1 <Client 192.168.0.1> Secret hotspot-AP1 Identifier LocalUser </Client> #AP2 <Client 192.168.0.2> Secret hotspot-AP2 Identifier LocalUser </Client> (…) #APn <Client 192.168.0.n> Secret hotspot-APn Identifier LocalUser </Client> # PROXY NACIONAL <Client cv-radius.fccn.pt> Secret hotspotfccn Identifier 4ProxyServer </Client> NOTA1: A chave (Secret) é uma chave partilhada utilizada para decifrar as mensagens provenientes de um cliente. Cada cliente diferente deve ter uma chave única por questões de segurança. A mesma chave deve estar definida do lado do Cliente (AP ou outro servidor de RADIUS) que está a utilizar este servidor para autenticar. Não existe um valor por omissão, portanto a chave tem sempre de ser definida. Também por questões de segurança a chave deve ser composta por pelo menos 16 caracteres alfanuméricos (símbolos, maiúsculas/minúsculas, números) aleatórios. O ‘Identifier’ serve como label para o cliente em questão. Poderá ser útil para por exemplo ter autenticação baseada no cliente de onde o pedido é proveniente. NOTA2: O identificador (Identifier) utilizado na definição do cliente Proxy Nacional vai ser utilizado mais à frente para evitar loops de pedidos. Apenas pedidos que não tenham o identificador ‘4ProxyServer’ (ou seja não são pedidos vindos do próprio Proxy Nacional), serão reencaminhados para o Proxy Nacional . <Realm> O Realm é a parte do login que sucede uma ‘@’ ou seja, para um login [email protected] , fccn.pt é o Realm. O Realm especial ‘DEFAULT’ será utilizado para tratar de todos os pedidos que não foram tratados por outras cláusulas Realm. Como a cláusula Realm é mais restrita que a cláusula Handler, e como com a cláusula do tipo <Handler Realm=fccn.pt> se produz o mesmo resultado que <Realm fccn.pt> não se utilizou a cláusula Realm na configuração. Para mais informações acerca da cláusula <Realm> consultar: http://www.open.com.au/radiator/ref.html#pgfId=367556 <Handler> Nos Handler’s são definidos métodos de autenticação. Os Handlers são baseados num conjunto arbitrário de atributos que têm de ser todos verdadeiros para que o pedido seja tratado por esse Handler. O algoritmo de selecção do Handler ou Realm é o seguinte: 1. Procurar uma cláusula Realm exactamente igual ao reaml name (realm do login) 2. Procurar uma cláusula Realm com expressão regular que efectue “match” 3. Procurar o Realm DEFAULT 4. Procurar um Handler por ordem de definição no ficheiro de configuração em que todos os atributos sejam verdadeiros para o pedido 5. Ignorar o pedido (não responde) O exemplo seguinte define os Handlers necessários para permitir autenticação 802.1x com PEAP e EAP-TTLS, bem como um Handler para tratamento de um utilizador especial (para configuração dos AP’s por exemplo). Define-se por último o Handler que tratará de enviar os pedidos para o próximo servidor de RADIUS para Proxy (Proxy Nacional no exemplo). ####### # Acesso aos AP’s ####### # O Handler apenas é accionado com os UserNames: ‘admin’ e ‘root’, e # apenas provenientes de clientes (definidos anteriormente) com # Identificador ‘LocalUser’. # A autentição é efectuada com os dados provenientes no ficheiro # ‘/etc/radius/AP-logins’ <Handler User-Name=/^(admin|root)$/, Client-Identifier=LocalUser> # Aqui, a autenticacao esta' a ser efectuada localmente # substitituir pelo tipo de BD desejada <AuthBy FILE> Filename /etc/radius/AP-logins </AuthBy> </Handler> # Pedidos "internos”, vindos de um túnel PEAP (2) <Handler TunnelledByPEAP=1> # Caso os Username estejam armazenados no formato ‘user’ e # não ‘user@realm’ a linha seguinte deve ser utilizada para # remover tudo para alem da arroba inclusive #RewriteUsername s/^([^@]+).*/$1/ # Aqui, a autenticacao esta' a ser efectuada localmente # substitituir pelo tipo de BD desejada <AuthBy FILE> Filename /etc/radius/users-peap #Tipo de autenticacao "interna" #Pode ser PAP, CHAP, MSCHAP, MSCHAP-V2, etc. EAPType MSCHAP-V2 </AuthBy> </Handler> # Pedidos internos enviados por túnel TTLS # Neste Handler devem residir todos pormenores referentes a # autenticação EAP-TTLS <Handler TunnelledByTTLS=1> # Caso os Username estejam armazenados no formato ‘user’ e # não ‘user@realm’ a linha seguinte deve ser utilizada para # remover tudo para alem da arroba inclusive #RewriteUsername s/^([^@]+).*/$1/ # Aqui, a autenticacao esta' a ser efectuada localmente # substitituir pelo tipo de BD desejada <AuthBy FILE> Filename /etc/radius/users-ttls # A linha seguinte retorna para o autenticador a real # identidade do cliente # Caso o AP suporte o fornecimento de AVPairs provenientes # do RADIUS a linha seguinte permite ao AP saber a # verdadeira identidade do cliente (proveniente da # autenticação interna e não externa) para que o # accounting seja efectuado com o username real e nao com o # anonimo AddToReply User-Name=%u </AuthBy> </Handler> # Neste handler sao desencapsulados <Handler Realm = fccn.pt> # Aqui, a autenticacao esta' a ser efectuada localmente # substitituir pelo tipo de BD desejada # Caso os Username estejam armazenados no formato ‘user’ e não # ‘user@realm’ a linha seguinte deve ser utilizada #RewriteUsername s/^([^@]+).*/$1/ <AuthBy FILE> #Filename /etc/radius/users #Tipo de EAPType PEAP, TTLS EAPTLS_CAFile /etc/radius/cert/demoCA/cacert.pem EAPTLS_CertificateFile /etc/radius/cert/cert-srv.pem EAPTLS_CertificateType PEM EAPTLS_PrivateKeyFile /etc/radius/cert/cert-srv.pem EAPTLS_PrivateKeyPassword whatever EAPTLS_MaxFragmentSize 1000 AutoMPPEKeys SSLeayTrace 4 </AuthBy> </Handler> # Proxy de pedidos para o Radius Nacional # Para os pedidos serem encaminhados para o Proxy o Realm não pode ser # vazio e não podem ter sido pedidos do próprio proxy <Handler Realm=/^.+$/,Client-Identifier=/^(?!4ProxyServer$)/> <AuthBy RADIUS> Host cv-radius.fccn.pt Secret secret_to_proxynacional AuthPort 1812 AcctPort 1813 Retries 0 </AuthBy> </Handler> Para mais informações sobre as opções possíveis nos Handlers consultar: http://www.open.com.au/radiator/ref.html#pgfId=363868 Alterações para Implementação de Proxy de Radius Local Em alguns casos faz sentido que a Instituição também disponha de um Proxy Local de RADIUS. Um exemplo é existirem vários polos cada um com um Realm (ex: polo1.instituicao.pt; polo2.instituicao.pt; etc.) e optar-se por instalar um servidor de RADIUS para cada polo. Um servidor adicional, ou em alternativa um dos servidores do polo, deverá servir de Proxy Local para a instituição, sendo este depois o ponto de saída da Instituição para o servidor Radius Nacional. As alterações a efectuar nos servidores locais são apenas a de alterar o servidor de Proxy para o servidor Proxy Local: # PROXY LOCAL <Client radius.instituicao.pt> Secret proxysecret-to-polo1 Identifier 4LocalProxy StripFromReply Tunnel-Type,Tunnel-Medium-Type, Tunnel-Private-Group-ID,Filter-Id, cisco-avpair NoIgnoreDuplicates Accounting-Request </Client> <Handler Realm=/^.+$/,Client-Identifier=/^(?!4LocalProxy$)/> <AuthBy RADIUS> Host radius.instituicao.pt Secret polo1secret-to-proxyradius AuthPort 1812 AcctPort 1813 Retries 0 StripFromReply Tunnel-Type,Tunnel-Medium-Type, Tunnel-Private-Group-ID,Filter-Id, cisco-avpair </AuthBy> </Handler> O servidor Proxy Local terá uma configuração semelhante à seguinte: # Acesso dos Polos ao Proxy Local <Client radius.polo1.instituicao.pt> Secret polo1secret-to-proxyradius Identifier=Polo1 StripFromReply Tunnel-Type,Tunnel-Medium-Type, Tunnel-Private-Group-ID,Filter-Id, cisco-avpair NoIgnoreDuplicates Accounting-Request </Client> <Client radius.polo2.instituicao.pt > Secret polo2secret-to-proxyradius Identifier=Polo2 StripFromReply Tunnel-Type,Tunnel-Medium-Type, Tunnel-Private-Group-ID,Filter-Id, cisco-avpair NoIgnoreDuplicates Accounting-Request </Client> # Acesso do Proxy Nacional ao Proxy Local <Client cv-radius.fccn.pt> Secret proxynacional-to-localproxysecret Identifier=4ProxyServer StripFromReply Tunnel-Type,Tunnel-Medium-Type, Tunnel-Private-Group-ID,Filter-Id, cisco-avpair NoIgnoreDuplicates Accounting-Request </Client> # Proxy de pedidos para o Polo1 <Handler Realm= polo1.instituicao.pt,Client-Identifier=/^(?!Polo1$)/> <AuthBy RADIUS> Host radius.polo1.instituicao.pt Secret proxysecret-to-polo1 AuthPort 1812 AcctPort 1813 Retries 0 StripFromReply Tunnel-Type,Tunnel-Medium-Type, Tunnel-Private-Group-ID,Filter-Id, cisco-avpair </AuthBy> </Handler> # Proxy de pedidos para o Polo2 <Handler Realm= polo2.instituicao.pt, ,Client-Identifier=/^(?!Polo2$)/> <AuthBy RADIUS> Host radius.polo2.instituicao.pt Secret proxysecret-to-polo2 AuthPort 1812 AcctPort 1813 Retries 0 StripFromReply Tunnel-Type,Tunnel-Medium-Type, Tunnel-Private-Group-ID,Filter-Id, cisco-avpair </AuthBy> </Handler> <Handler Realm=/^.+$/,Client-Identifier=/^(?!4ProxyServer$)/> <AuthBy RADIUS> Host cv-radius.fccn.pt Secret instituicao-to-proxynacionalsecret AuthPort 1812 AcctPort 1813 Retries 0 StripFromReply Tunnel-Type,Tunnel-Medium-Type, Tunnel-Private-Group-ID,Filter-Id, cisco-avpair </AuthBy> </Handler> NOTA: também são possíveis de implementar cenários em que se estabelecem protocolos entre Instituições para troca directa de pedidos sem recurso ao servidor Nacional. Parâmetros Adicionais (na resposta de autenticação aceite) Por Utilizador (adicionar parâmetros) Podem ser atribuídos parâmetros especiais para cada utilizador. A forma apresentada é baseada em autenticação por ficheiro de utilizadores mas deverá ser válido para qualquer outro tipo de autenticação. # Mapeamento de Filter-Id por utilizador # Utilizado na solução EnterAsys utilizador1 Password= aminhapassword Filter-Id = "e-U" # Mapeamento de VLAN por utilizador via RADIATOR(vlanid = 16) # Utilizado na solução Cisco utilizador1 Password= aminhapassword Tunnel-Type = “1:VLAN” Tunnel-Medium-Type = “1:Ether_802” Tunnel-Private-Group-ID = “1:16” # Mapeamento de VLAN por utilizador via RADIATOR(vlanid = 4) # Utilizado na solução 3Com (atribuição da vlan em formato octal) utilizador1 Password= aminhapassword Tunnel-Type = “VLAN Tunnel-Medium-Type = “Ether_802” Tunnel-Private-Group-ID = “\004” Por Handler (adicionar/remover parâmetros) Quando um utilizador é autenticado, na reposta “Access-Accepted” podem ser retornados atributos dirigidos ao AP onde esse utilizador se associou. Esses atributos podem ser dos mais variados tipos, desde parâmetros de filtragem, parâmetros de rede, etc. O adicionar e remover parâmetros torna-se tanto mais importante quando se tratam de utilizadores em roaming, isto porque o servidor que autentica o utilizador (instalado na instituição de origem do utilizador) desconhece o cenário físico e/ou lógico da instituição onde se encontra o utilizador que acabou de autenticar. O facto de existirem várias soluções possíveis para diferenciação dos utilizadores (ex: diferenciação por SSID-VLAN ou por Filter-Id) faz com que seja obrigatória a adição e/ou remoção de atributos vindos do autenticador (servidor que conhece o utilizador). Por exemplo, no caso da VLAN ser determinado pelo servidor de autenticação e sabendo que a VLAN fornecida pelo servidor de autenticação tem prioridade sobre a definida no equipamento, faz com que um utilizador que se autentique fora da sua instituição, veja o seu servidor devolver o parâmetro VLAN errado no cenário onde se encontra. As implicações poderão ser a de ficar numa rede inexistente ou ainda pior, ter acesso a uma rede à qual não deveria aceder. Outro exemplo é a solução de diferenciar os utilizadores através do parâmetro Filter-Id. Na instituição o utilizador utiliza o Filter-Id de ‘Professor’ mas numa outra instituição apenas poderá ser ‘Convidado’ por exemplo. Uma vez que o servidor que autentica o utilizador fornece o Filter-Id=”Professor”, fica do lado do servidor de autenticação local (da instituição onde se liga “fisicamente” o utilizador), a responsabilidade de retirar da informação considerada perigosa (Filter-Id=”Professor”) e colocar a informação segura (Filter-Id=”Convidado”). Os comandos que permitem efectuar estas operações são: AddToReply : Adiciona parâmetros à resposta de “Access-Accepted” StripFromReply : Remove parâmetros à resposta de Access-Accepted AllowInReply : Apenas permite os seguintes parâmetros à resposta de AccessAccepted (Utilizar com precaução pois corre-se o risco de se remover atributos necessários à própria autenticação) Estes comandos são utilizados dentro de Handlers ou Realms e são aplicados pela ordem em que são definidos/atingidos. Ex: # Retirar a informação de VLAN e Filter-Id proveniente de outro # servidor e adicionar o Filter-Id=”e-U” <Handler XXXX> <AuthBy XXXX> ... StripFromReply Tunnel-Type, Tunnel-Medium-Type, Private-Group-ID,Filter-Id AddToReply=Filter-Id=”e-U” </AuthBy> </Handler> Tunnel- NOTA : Existem outros comandos que permitem alterar a resposta mas não são abordados neste documento. Exemplo de Configuração: NOTA: O exemplo seguinte contemplam sempre a autenticação num ficheiro simples (plain text file). Cenário 1 (Mapeamento por Múltiplas VLAN’s Múltiplos SSID’s) • 2 Access Points com os endereços 192.168.1.1 e 192.168.1.2 • os Access Points diferenciam os utilizadores através de múltiplas VLAN’s/SSID’s que são configuradas no equipamento • 1 Servidor RADIATOR com routing para a internet (para acesso ao proxy) Configuração (radius.cfg) AuthPort AcctPort LogDir DbDir DictionaryFile PidFile Trace 1812 1813 /var/log/radius /etc/radius %D/dictionary,%D/dictionary.ascend /var/run/radiusd.pid 0 # Clientes autorizados #AP 1 <Client 192.168.1.1> Secret secret_do_accesspoint1 Identifier LocalUser </Client> #AP 2 <Client 192.168.1.2> Secret secret_do_accesspoint2 Identifier LocalUser </Client> #Proxy Central <Client 193.136.192.119> Secret secret_para_accesso_ao_proxy_nacional Identifier 4ProxyServer StripFromReply Tunnel-Type,Tunnel-Medium-Type, Tunnel-Private-Group-ID,Filter-Id, cisco-avpair NoIgnoreDuplicates Accounting-Request </Client> # Efectuar logging dos acessos dos utilizadores pertencentes à # instituição sem o REALM uma vez que é sempre o mesmo. <AuthLog FILE> Identifier localusers Filename %L/localusers.log SuccessFormat %l:%T from %U at %N:OK FailureFormat %l:%T from %U at %N:FAIL LogSuccess 1 LogFailure 1 </AuthLog> # Efectuar logging dos acessos dos utilizadores em roaming na # instituição (externos) – apenas as credenciais exteriores # (tipicamente anonymouns) serão visíveis, mas o log é efectuado com o # REALM para se saber de que instituição é o utilizador <AuthLog FILE> Identifier roamingusers Filename %L/roamingusers.log SuccessFormat %l:%T from %u at %N:OK FailureFormat %l:%T from %u at %N:FAIL LogSuccess 1 LogFailure 1 </AuthLog> # Exemplo para Autenticação do accesso aos AP’s <Handler User-Name=/^(administrador|root)$/, Client-Identifier=/^LocalUser$/> <AuthBy FILE> Filename /etc/radius/AP-logins </AuthBy> </Handler> #Pedidos "internos", vindos de um túnel PEAP <Handler TunnelledByPEAP=1> RewriteUsername s/^([^@]+).*/$1/ <AuthBy FILE> RewriteUsername s/^([^@]+).*/$1/ Filename /etc/radius/users EAPType MSCHAP-V2 AddToReply User-Name=%u </AuthBy> AuthLog localusers </Handler> #Pedidos internos enviados por túnel TTLS <Handler TunnelledByTTLS=1> RewriteUsername s/^([^@]+).*/$1/ <AuthBy FILE> Filename /etc/radius/users AddToReply User-Name=%u </AuthBy> AuthLog localusers </Handler> # Handler para o domínio da instituição (inst.pt) <Handler Realm = inst.pt> RewriteUsername s/^([^@]+).*/$1/ MaxSessions 1 <AuthBy FILE> EAPType PEAP, TTLS, TLS EAPTLS_CAFile /etc/radius/cert/demoCA/cacert.pem EAPTLS_CertificateFile /etc/radius/cert/cert-srv.pem EAPTLS_CertificateType PEM EAPTLS_PrivateKeyFile /etc/radius/cert/cert-srv.pem EAPTLS_PrivateKeyPassword whatever EAPTLS_MaxFragmentSize 1000 AutoMPPEKeys SSLeayTrace 4 </AuthBy> </Handler> # # # # Efectua proxy de outros pedidos O Client-Identifier evita loop's de pedidos que chegaram do proxy server possam ser reenviados para o proxy server novamente Tambem so sao enviados pedidos com REALM nao vazio <Handler Realm=/^.+$/,Client-Identifier=/^(?!4ProxyServer$)/> <AuthBy RADIUS> Host cv-radius.fccn.pt Secret secret_to_proxynacional AuthPort 1812 AcctPort 1813 Retries 0 StripFromReply Tunnel-Type,Tunnel-Medium-Type, Tunnel-Private-Group-ID, Filter-Id, cisco-avpair </AuthBy> AuthLog roamingusers </Handler> Configuração (users) utilizador1 utilizador2 (...) Password = aminhapassword1 Password = aminhapassword2 Cenário 2 (Mapeamento por Filter-Id fornecido pelo RADIATOR) • 2 Access Points com os endereços 192.168.1.1 e 192.168.1.2 • os Access Points diferenciam os utilizadores através de Filter-Id que são fornecidos pelo servidor de autenticação • 1 Servidor RADIATOR com routing para a internet (para acesso ao proxy) A configuração será semelhante à apresentada no cenário 1 com excepção do Handler que define o Proxy de pedidos para o exterior e do ficheiro de users: Configuração (radius.cfg) (...) <Handler Realm=/^.+$/,Client-Identifier=/^(?!4ProxyServer$)/> <AuthBy RADIUS> Host cv-radius.fccn.pt Secret secret_to_proxynacional AuthPort 1812 AcctPort 1813 Retries 0 StripFromReply Tunnel-Type,Tunnel-Medium-Type, Tunnel-Private-Group-ID, Filter-Id, cisco-avpair # Este utilizador tem acesso com permissoes de “e-U” AddToReply Filter-Id = “e-U” </AuthBy> AuthLog roamingusers </Handler> Configuração (users) # Este utilizador tem acesso com permissoes de “aluno” utilizador1 Password = aminhapassword1 Filter-Id = "aluno" # Este utilizador tem acesso com permissoes de “professor” utilizador2 Password = aminhapassword2 Filter-Id = "professor" Cenário 3 (Mapeamento de VLAN fornecida via RADIATOR) • 2 Access Points com os endereços 192.168.1.1 e 192.168.1.2 • os Access Points têm configurados dois SSID’s cada um com uma VLAN para cada SSID. Recebem do RADIATOR no final da autenticação a VLAN a atribuir ao utilizador que se acaba de autenticar. • 1 Servidor RADIATOR com routing para a internet (para acesso ao proxy) A configuração será semelhante à apresentada no cenário 1 com excepção do ficheiro de users: Configuração (users) # coloca o utilizador na vlan 50 utilizador1 Password = aminhapassword1 Tunnel-Type = "1:VLAN" Tunnel-Medium-Type = "1:Ether_802" Tunnel-Private-Group-ID = "1:50" # Versão para equipamento 3Com (vlanid deve ser atribuida em octal sem # o ‘tag’ “1:”) # coloca o utilizador na vlan 50 (decimal 50 = octal 62) utilizador2 Password = aminhapassword2 Tunnel-Type = "VLAN" Tunnel-Medium-Type = "Ether_802" Tunnel-Private-Group-ID = "\062" (...) NOTA: Para equipamento Cisco as VLAN’s fornecidas pelo RADIATOR TÊM de estar configuradas no equipamento. A falta da configuração no equipamento da VLAN enviada pelo RADIATOR o AP utiliza a VLAN associada ao SSID a que o utilizador se associou. Recursos adicionais: Mais informação acerca do software RADIATOR em: http://www.open.com.au/radiator Mais Informações acerca da configuração do RADIATOR em: http://www.open.com.au/radiator/ref.html Módulos de Perl adicionais (necessários e/ou opcionais) em: http://www.perl.com/CPAN/CPAN.html Mais informação acerca do Projecto e-U http://www.fccn.pt/projectos/campusvirtuais/?in_menu_option=91053