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!