Introdução
O Webmin é de longe a mais antiga e completa ferramenta livre, web-based, para gerenciamento de servidores Linux em atividade. Desenvolvido quase que integralmente em Perl, baseada no paradigma da programação em camadas, com suporte multi-idiomas e distribuído sob a licença BSD-like, atualmente (neste exato momento em que escrevo) o Webmin está na sua versão 1.479 e possui versões tanto para Linux, quanto Solaris, HP/UX, Apple MacOS X e alguns outros ports como para FreeBSD e até mesmo Windows. Todas as versões podem ser obtidas através da página oficial de downloads do projeto. Aproveitando-se do conceito de desenvolvimento em camadas (modular) e do fato de ser um software livre, é possível também se obter os módulos individualmente, bem como, desenvolver módulos adicionais sob demanda.
Dentre os principais módulos standart que compõe o Webmin, podemos destacar:
- Configuração das premissas básicas do sistema (como data e hora);
- Administração de grupos e usuários do sistema operacional;
- Configuração das opções de rede do equipamento;
- Configuração dos principais daemons:
- Samba;
- Apache;
- Bind;
- DHCPD;
- SSHD;
- MTA (Postfix/Qmail);
- Regras de firewall (iptables);
- SQUID;
- MYSQL;
- muitos outros…
- Agendamento de tarefas como backup do sistema, por exemplo;
- Gerenciamento de pacotes;
- Ativação de quotas de disco para usuários e serviços e muito mais…
Você pode testar boa parte destas funcionalidades no DEMO on-line disponível na página do projeto. Obviamente que no DEMO não estão todos os módulos existentes atualmente para inserção na plataforma, mas é possível se ter uma idéia das pontencialidades da ferramenta sem ter que necessariamente instalá-la no seu server.
Instalando WebMin no seu Debian Linux
- Neste artigo abordaremos a instalação do Webmin em um servidor (lê-se aqui um servidor qualquer, pode ser um LAMP, um servidor de arquivos SAMBA ou um servidor webproxy com o SQUID) Debian Linux Etch. Mas, como citamos anteriormente, a ferramenta pode ser instalada em vários outros sabores de sistemas operacionais e a documentação (em inglês) pode ser obtida no próprio website oficial.
- Instalação das dependências:
O Webmin roda sob o protocolo SSL (https) e portanto, caso você ainda não possua os pacotes mínimos necessários, vai precisar instalá-los:
# apt-get update
# apt-get install perl libnet-ssleay-perl openssl libauthen-pam-perl libpam-runtime libio-pty-perl libmd5-perl
- Instalando o Webmin:
No Debian Linux é totalmente possível se fazer a instalação do Webmin adicionando o mirror do projeto do /etc/apt/sources. list e utilizando o bom e velho apt-get install. Para saber mais sobre gerenciamento de pacotes pelo APT, leia este outro artigo aqui no JACK.eti.br. Porém para mantermos a compatibilidade com outras versões do Debian, faremos aqui a instalação via pacote DEB.
Faça o download do Webmin pré-compilado no http://prdownloads.sourceforge.net/webadmin/webmin_1.470_all.deb e copie para um diretório no seu servidor (Você pode enviar o arquivo recém baixado para o seu servidor Linux através do FileZilla, por exemplo. Leia a dica aqui!) e proceda com a instalação:
# dpkg -i webmin_1.470_all.deb
Pronto, o Webmin já está instalado e funcional no seu servidor Linux. Para testá-lo, acesse via web-browser de qualquer equipamento da rede o seu server: https://IP_DO_SERVER:10000. Note que o Webmin utiliza o protocolo https/ssl, conforme citamos anteriormente e roda por padrão na porta tcp 10000. Agora basta logar com a conta e senha do root e começar a testar a ferramenta! 😉
Conhecendo o ambiente do Webmin
No seu primeiro acesso ao endereço/área do webmin você receberá uma tela de login. É importante salientar que usuários do sistema operacional (Linux, no caso) são entendidos e tratados diferentemente de usuários do webmin. O único usuário previamente habilitado, com poderes de administrador do webmin, inclusive, é o root. Num segundo momento você poderá converter usuários do seu sistema operacional em usuários do Webmin, restringindo opções e criando perfis ou, adicionando usuários apenas ao Webmin (sem que sejam usuários com shell no sistema operacional).
Nota importante: Um detalhe bastante importante do Webmin é que você pode rodá-lo em seu servidor sem ter um servidor web configurado. Em outras palavras, o webmin não necessita do apache por exemplo, ele é totalmente auto-suficiente neste quesito.
Isso é bastante útil em casos onde você quer deixar o seu cliente ou administrador de sistemas em início de carreira apenas com algumas opções de operacionalização do sistema, sem ter acesso integral a tudo. A maioria dos administradores de sistemas Linux mais experiêntes tem uma certa aversão ao Webmin em função de acharem que a ferramenta não consegue ser tão ampla quanto o acesso “bruto” ao servidor via shell (SSH, por exemplo). Isso é de fato uma realidade, até mesmo porque, quando o assunto são front-ends de configuração, independentemente do cenário, é quase impossível se contemplar todas as opções que você possui manualmente numa única ferramenta. Mas, isso não significa dizer que o Webmin não pode ser a opção que você tanto procurava para dar ao seu cliente/usuário do servidor uma interface de mais alto nível de administração de alguns serviços, não é mesmo?!!!
A primeira coisa que se avista, no lado direito da tela, posteriori login, são as informações básicas do hardware/sistema onde o Webmin está rodando. Além do sistema operacional nativo, ainda podemos conferir uso de CUP, memória e tempo de decorrido depois do último shutdown. Uma vez logado no ambiente do webmin, a primeira coisa a se fazer é alterar o idioma padrão para o bom pt-BR. Isso vai facilitar muito a vida daquele seu cliente que terá acesso à plataforma apenas para atualizar as regras de firewall do servidor. A opção está na lateral esquerda do ambiente (menu Webmin), que é onde aliás estão todas as principais opções do Webmin.
Conforme já comentamos no decorrer deste texto, o Webmin é mesmo um verdadeiro canivete suíço. Com ele é possível se configurar dispositivos como a placa de rede do seu servidor, alterar sua tabela de particionamento, mexer com as entradas do GRUB ou até mesmo adminsitrar as impressoras locais conectadas ao server. Não obstante, podemos tirar ou inserir suporte a protocolos de comunicação, configurar o xinetd ou monitorar o tráfego entrante e sainte de rede de todas as interfaces (Menu Rede e Hardware).
Sem dúvida alguma, dentre as tarefas mais relevantes presentes no Webmin, está adminstração cotidiana do server, como a configuração de usuários e grupos do sistema operacional. Através da ferramenta é possível ainda agendar tarefas no cron, instalar pacotes (inclusive via APT), gerenciar processos em memória e até mesmo consultar as man pages on-line (Menu Sistema).
Mas a “menina dos olhos” do Webmin é mesmo a possibilidade de se configurar daemons diversos num ambiente integrado, único e totalmente web. Na prática o Webmin não trás nenhum recurso avançado de configuração dos serviços, como por exemplo configurar o PROFTPD para ler a tabela de usuários de um banco MySQL, mas faz muito bem o trabalho comum. Basicamente ele escreve nos arquivos texto de configuração, desempenhando assim o “trabalho sujo” para o seu usuário/cliente.
A lista de opções de configuração de daemons é totalmente proporcional aos pacotes instalados no servidor e aos módulos adicionados ao webmin. Isso significa dizer que para se configurar o SAMBA pelo Webmin, os pacotes relativos devem estar previamente instalados. Em alguns casos, o próprio Webmin faz o dowload e a instalação do daemon quando ele não está presente no server e você clica na opção correspondente (se você consetir, obviamente).
Não é objetivo deste artigo vender a idéia de que o Webmin é um daqueles pacotes milagrosos, que faz com que um usuário leigo consiga adminsitrar totalmente um servidor Linux/Unix. Definitivamente esta não é a idéia, nem do texto, nem da ferramenta. Contudo, como podemos observar, é sim possível se disponibilizar uma interface administrativa mais amigável para o seu cliente/usuário ou até mesmo para alivar as tarefas corriqueiras do seu dia-a-dia, levando-se sempre em consideração as limitações de cada projeto, bem como, as impostas pelos próprios módulos da plataforma.
Leia também: