Myauth 3 - Dois servidores utilizando o mesmo banco de dados

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

[ Hits: 11.983 ]

 


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

Estamos seguros no orkut?

Controle de banda com Shaper

DDOS utilizando hubs p2p

PHP com suporte a Oracle no Slackware 10

Reduzindo o tempo de carregamento de seu site

Leitura recomendada

Permissão de acesso ao servidor X (Slackware 13+)

Ativando o NumLock na inicialização do Linux

Teclado ABNT2 definitivo no Archlinux

Servidor Linux básico

Portage com GIT no Gentoo

  

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