Myauth 3 - Dois servidores utilizando o mesmo banco de dados

Publicado por Vinícius de Oliveira Almeida em 16/01/2010

[ Hits: 12.001 ]

 


Myauth 3 - Dois servidores utilizando o mesmo banco de dados



Galera, para quem utiliza o Myauth 3...

Comprei duas licenças do Myauth 3 para autenticação na rede Floresta-digital em Rio Branco. Deparei-me com o seguinte problema. O Myauth possui seu próprio banco de dados local, não possibilitando um único banco de dados para os servidores. Porém me daria um grande trabalho ter que ficar cadastrando clientes e login nos dois autenticadores...

A solução foi bem simples e de grande ajuda, existe uma API no arquivo /admin/database/mysql.conf.

Edite esta configuração no segundo servidor colocando as seguintes configurações.

HOST IP_DO_BANCO_REMOTO

Edite somente estas linhas abaixo do arquivo conf para _2:

DEVICES                 devices_2
DEVICES_ALIASES         devices_aliases_2
DEVICES_VLAN            devices_vlan_2
DHCP_HOSTS              dhcp_hosts_2
MULTILINK_LINKS         multilink_links_2

Após a mudança, vamos criar as tabelas no primeiro Myauth. No prompt digite:

# touch extras.sql

Edite o arquivo extras.sql e cole este conteúdo e salve-o.

use admin;
CREATE TABLE IF NOT EXISTS `devices_2` (
  `id` int(11) NOT NULL auto_increment,
  `server` char(40) NOT NULL default '',
  `dev` char(10) NOT NULL default '',
  `type` enum('W','L') NOT NULL default 'L',
  `description` text,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;


CREATE TABLE IF NOT EXISTS `devices_aliases_2` (
  `id` int(11) NOT NULL auto_increment,
  `dev` char(10) NOT NULL default '',
  `addr` char(15) NOT NULL default '',
  `mask` tinyint(4) NOT NULL default '24',
  `description` char(255) NOT NULL default '',
  `enable` tinyint(4) NOT NULL default '1',
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;


CREATE TABLE IF NOT EXISTS `devices_vlan_2` (
  `id` int(11) NOT NULL auto_increment,
  `dev` char(10) NOT NULL default '',
  `vlanid` int(11) NOT NULL default '0',
  `enable` tinyint(4) NOT NULL default '1',
  `description` text,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;


CREATE TABLE IF NOT EXISTS `dhcp_2` (
  `id` int(11) NOT NULL auto_increment,
  `network` char(20) NOT NULL default '',
  `range_start` char(20) NOT NULL default '',
  `range_stop` char(20) NOT NULL default '',
  `dns1` char(20) NOT NULL default '',
  `dns2` char(20) NOT NULL default '',
  `domain` char(60) NOT NULL default '',
  `netmask` char(20) NOT NULL default '',
  `broadcast` char(20) NOT NULL default '',
  `enable` tinyint(4) NOT NULL default '1',
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;


CREATE TABLE IF NOT EXISTS `dhcp_hosts_2` (
  `id` int(11) NOT NULL auto_increment,
  `network` char(20) NOT NULL default '',
  `mac` char(60) NOT NULL default '',
  `ip` char(60) NOT NULL default '',
  `info` char(255) NOT NULL default '',
  `enable` tinyint(4) NOT NULL default '1',
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;


CREATE TABLE IF NOT EXISTS `multilink_links_2` (
  `id` int(11) NOT NULL auto_increment,
  `link_id` int(11) NOT NULL default '0',
  `name` char(50) NOT NULL default '',
  `gateway` char(15) NOT NULL default '',
  `source` char(15) NOT NULL default '',
  `dev` char(5) NOT NULL default '',
  `download` int(11) NOT NULL default '0',
  `upload` int(11) NOT NULL default '0',
  `type` char(1) NOT NULL default 'A',
  `status` int(11) NOT NULL default '0',
  `enable` int(11) NOT NULL default '1',
  `test_type` char(1) NOT NULL default '0',
  `test_addr` char(60) NOT NULL default '',
  `temp_mac` char(17) NOT NULL default '',
  `dns1` char(15) NOT NULL default '',
  `dns2` char(15) NOT NULL default '',
  `description` text,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;

Ainda no prompt, importe o arquivo sql para o banco de dados:

# mysql -u root -p < extras.sql

Feito isso entre na configuração do seu MySQL e retire o $SKIP, da seguinte forma:

# vi /etc/rc.d/rc.mysql

Dentro do arquivo procure a seguinte linha:

/usr/bin/mysqld_safe --datadir=/var/lib/mysql --pid-file=/var/run/mysql/mysql.pid $SKIP &

Retire somente o $SKYP para aceitar conexões externas.

Reinicie seu servidor MySQL:

# /etc/rc.d/rc.mysqld restart

Estamos quase concluindo, resta agora criar os privilégios para aceitar sua conexão.

Entre no seu MySQL pelo console:

# mysql -u root -p

Execute estes comandos:

mysql> GRANT ALL PRIVILEGES ON admin.* TO root IDENTIFIED BY 'tulipasql';
mysql> FLUSH PRIVILEGES;

Pronto, seu Myauth está compartilhando o mesmo banco de dados. Teste adicionando um login no primeiro autenticador e observe que ele automaticamente será incluso no segundo...

Espero que a dica não esteja tão complicada.

Qualquer dúvida me add no msn (vinicius@srvr.com.br).

Grande abraço!

Outras dicas deste autor

Envio de SMS pelo PHP

Dúvidas para compilar um kernel?

Instalando Tcptrack no Slackware 13

Estamos seguros no orkut?

Exploit dá acesso root em máquina local - kernels 2.6.17 e 2.6.24.1

Leitura recomendada

Aumentando a resolução de vídeo no Lubuntu rodando no VirtualBox

openSUSE: upgrade indolor para o Leap 42.1

Mudar idioma no Fedora

Ícones da Lixeira, Meu Computador e Pasta Pessoal na área de trabalho

Apache + SSL

  

Comentários
[1] Comentário enviado por caled182 em 15/01/2011 - 13:28h

Opa eae parceiro! ótimo post!

Cara será que poderia me axuliar pra que eu possa ter sussesso utilizando o radius juntamente, pois no seu modo ai funciona 100% com hotspot! maravilha só que com Radius já bati cabeça d++ e nada!

se puder me ajudar amigo agradeço d+++!



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts