Neste artigo, saiba mais sobre estes conceitos:
- Visão geral dos recursos de Samba Web Administration Tool (SWAT)
- Instalação e configuração do SWAT
- Uso do SWAT para configurar o Samba
Este artigo é útil para preparar-se para o Objetivo 312.5 no Tópico 312 do exame (302) Especialidade do Ambiente Misto do Linux Professional Institute(LPI). O objetivo tem peso 4.
Este artigo pressupõe que você tenha um conhecimento de trabalho das funções de linha de comando do Linux e um entendimento dos conceitos básicos da configuração do Samba. Você deve se familiarizar com a estrutura geral do arquivo de configuração smb.conf. Também deve entender como servidores em geral são executados, incluindo uso de scripts de inicialização System V (SysV) e superservidores.
No Samba versão 3.x, SWAT é um servidor separado dos outros dois servidores Samba principais, smbd e nmbd. Portanto, é preciso configurá-lo para executar separado do servidor Samba principal. Dependendo de como o Samba foi instalado, pode ser preciso instalar o SWAT separadamente também. Para maior segurança, pode-se configurar o SWAT para executar usando criptografia Secure Sockets Layer (SSL).
Observação: Samba 4, que ainda está em desenvolvimento, faz importantes alterações arquiteturais, incluindo importantes mudanças no SWAT. Este artigo descreve o estado do SWAT no Samba 3.x, que é a versão atualmente recomendada para ambientes de produção.
Se você desenvolveu o Samba a partir do código de origem, como descrito no Objetivo 311.1, SWAT deve ter sido desenvolvido por padrão e instalado junto com os outros componentes do Samba. A opção --disable-swat do configure
faz com que o SWAT não seja compilado. Se deseja ativar explicitamente o SWAT, em vez de contar com o padrão, pode passar --enable-swat
para configure.
Se você instalar o Samba usando um pacote binário fornecido pelo mantenedor da sua distribuição, verifique os pacotes para determinar como instalar o SWAT. Muitas distribuições oferecem um pacote chamado swat ou samba-swat
que inclui o servidor SWAT. Esse pacote deve ser instalado separado dos pacotes Samba básicos. No entanto, pode ser instalado automaticamente. Use sua ferramenta do pacote para ver quais pacotes existem no seu sistema.
Se não localizar um pacote SWAT separado, ele pode ter sido instalado como parte de outro pacote Samba. O binário do SWAT é chamado, como seria de se esperar, de swat, portanto é possível procurar por esse arquivo de programa para ver se o SWAT está disponível no computador. Se você estiver usando o Gentoo Linux, note que é preciso definir swat como sinalizador USE ao usar emerge no pacote samba para desenvolver o SWAT.
Com o SWAT instalado, podemos passar agora à sua execução. SWAT foi projetado para ser executado por meio de um superservidor, tal como xinetd ou inetd. Como a configuração desses superservidores é muito diferente, eu as descrevo separadamente.
A maioria das distribuições Linux hoje usa xinetd como superservidor. Se você não souber ao certo qual superservidor seu computador usa, tente usar ps para procurar pela cadeia de caractere inetd:
$ ps ax | grep inetd 17996 ? Ss 0:00 /usr/sbin/xinetd -pidfile /var/run/xinetd.pid -stayalive -reuse |
Nesse exemplo, xinetd está executando. Se a saída do ps mostrar um processo chamado inetd, siga as instruções na próxima seção, Executando SWAT com inetd. Se não houver um processo de superservidor executando, pode ser preciso instalar xinetd
ou inetd.
O servidor xinetd usa um arquivo de configuração chamado /etc/xinetd.conf. Na maioria das instalações, esse arquivo contém configurações globais e requer os arquivos específicos do servidor no diretório /etc/xinetd.d. O arquivo de configuração do SWAT terá provavelmente o nome de /etc/xinetd.d/swat, e provavelmente será semelhante à Listagem 1.
Listagem 1. Arquivo de configuração SWAT de exemplo
service swat
{
port = 901
socket_type = stream
protocol = tcp
wait = no
only_from = localhost
user = root
server = /usr/sbin/swat
log_on_failure += USERID
disable = yes
}
|
Seu arquivo padrão pode ser diferente em alguns detalhes, mas os pontos principais devem ser semelhantes. Se não houver um arquivo assim no sistema, é possível criar um ou incluir uma entrada definindo o serviço SWAT em /etc/xinetd.conf. A maioria das opções deve ter seu valor padrão mantido (no arquivo fornecido pela distribuição ou como mostrado no exemplo anterior); no entanto, pode ser necessário alterar algumas entradas:
- A linha
only_fromdefine uma restrição de acesso. Nesse exemplo,xinetdpermite acesso apenas a partir do computador no qual o SWAT é executado. Essa é uma precaução de segurança útil, mas, se você precisar administrar seu servidor Samba a partir de outro computador ou conjunto de computadores, pode especificar outros endereços. Vários tipos de endereços são aceitos. Consulte a man page do xinetd.conf para detalhes. - A linha
serverespecifica o caminho completo para o binário SWAT. Verifique se o binárioswatestá nesse local. - A linha
disable = yesdiz aoxinetdque ele não deve iniciar o SWAT. É preciso alterar essa linha paradisable = nopara usar o SWAT.
O último ponto é de importância crítica: muitas distribuições enviam seus arquivos de configuração /etc/xinetd.d/swat com SWAT desativado por padrão, como medida de segurança. Os servidores também podem ser desativados por uma linha em /etc/xinetd.conf:
disabled = swat |
Se você vir swat em uma linha assim, deve remover para iniciar o servidor.
Após fazer as alterações desejadas no /etc/xinetd.d/swat, é preciso dizer ao xinetd para recarregar seu arquivo de configuração. Na maioria das distribuições, isso pode ser feito passando a opção reload para o script de inicialização SysV do xinetd:
# /etc/init.d/xinetd reload |
Após fazer isso, você pode começar a usar o SWAT. Mas se desejar ativar segurança SSL, deve ler a seção Ativando criptografia SSL.
Se você estiver usando inetd, o processo de configuração é semelhante ao do xinetd, mas vários detalhes críticos são diferentes. Como seria de se esperar, o arquivo de configuração do inetd se chama /etc/inetd.conf. Versões recentes do inetd suportam a divisão entre diferentes arquivos de configuração por servidor, assim como o xinetd faz, portanto pode haver um diretório /etc/inetd.d com arquivos de configuração separados.
Quer se use um arquivo /etc/inetd.conf único ou um arquivo de configuração /etc/inetd.d/samba, a entrada do Samba consiste em uma única linha:
swat stream tcp nowait root /usr/sbin/tcpd /usr/sbin/swat |
Essa linha contém basicamente as mesmas informações que uma entrada do xinetd. O número da porta é determinado examinando o nome no começo da linha (swat) em /etc/services. A entrada /usr/sbin/tcpd
nesse exemplo não tem equivalente na configuração do xinetd, pois essa entrada especifica o programa que o inetd
executa quando um cliente tenta entrar em contato com o servidor. Nesse exemplo, inetd inicia TCP Wrappers (usando um arquivo de programa chamado /usr/sbin/tcpd). TCP Wrappers realiza suas próprias verificações de segurança e inicia o SWAT — ou seja, o programa especificado na entrada final da linha (/usr/sbin/swat).
Talvez haja uma entrada para o SWAT no arquivo /etc/inetd.conf que está comentada com um símbolo de grade na frente (#). Se houver, é preciso remover o comentário da entrada para ativar o SWAT. Após fazer isso e modificar a entrada de qualquer outra maneira desejada, diga ao inetd para recarregar seu arquivo de configuração. Isso pode ser feito da mesma maneira que se recarrega uma configuração do
xinetd, como descrito anteriormente.
Como já descrito, uma configuração SWAT padrão não suporta criptografia. Não há problema nisso se o acesso ao host local tiver sido restrito, como na configuração do xinetd mostrada anteriormente, ou se restrições semelhantes forem implementadas usando TCP Wrappers. No entanto, se o SWAT for usado para acesso remoto, executá-lo sem criptografia significa enviar a senha raiz pela rede sem criptografia. Esse risco pode ser inaceitável, especialmente se for necessário usar o SWAT para configurar Samba a partir de um computador na Internet, e não de um na mesma sub-rede que o servidor Samba.
Para melhorar a segurança, é possível incluir criptografia SSL na configuração SWAT. Para isso, é preciso instalar software adicional e fazer alterações de configuração. O software necessário é OpenSSL e stunnel. A maioria das distribuições disponibiliza ambos os pacotes em seus bancos de dados de pacotes, portanto a instalação deve ser fácil.
Observação: Provavelmente é melhor configurar e testar o SWAT sem criptografia SSL primeiro. Dessa forma, você saberá que o servidor funciona da maneira esperada em sua configuração mais simples possível. Se houver problemas, é possível depurá-los e ter certeza de que a culpa não é da configuração do SSL. Quando tudo estiver funcionando, modifique sua configuração para usar a criptografia.
Após instalar os programas OpenSSL e stunnel, faça o seguinte:
- Se necessário, crie um usuário e grupo para
stunnel.O pacote
stunnelpode ter feito isso na instalação, portanto essa etapa pode não ser necessária. - Gere um certificado SSL e chave privada, digitando o seguinte comando como raiz (em uma única linha):
# openssl req -new -x509 -days 365 -nodes -out /etc/stunnel/stunnel.pem -keyout /etc/stunnel/stunnel.pem
Serão solicitadas várias informações, tais como nome do host e endereço de e-mail. Observe que esse comando cria um certificado que expira em 365 dias, portanto será necessário repetir esta etapa em um ano.
- Modifique a propriedade do arquivo /etc/stunnel/stunnel.pem para que seja de propriedade do usuário e grupo
stunnelcriados na etapa 1. - Crie ou modifique o arquivo /etc/stunnel/stunnel.conf.
A Listagem 2 mostra um arquivo de configuração de amostra. Se o sistema já contiver esse arquivo, deixe a maioria das opções como estão, mas garanta que o arquivo tenha as três últimas linhas mostradas na Listagem 2, começando com
[swat]. Essas linhas dizem aostunnelcomo lidar com conexões SWAT — especificamente,stunnelouve na porta 901 e passa tráfego decriptografado para a porta 902. Além disso, garanta que as linhascertekeyapontem para o arquivo de certificado gerado anteriormente.
Listagem 2. O utilitário stunnel requer seu próprio arquivo de configuraçãochroot = /var/lib/stunnel/ pid = /stunnel.pid setuid = stunnel setgid = stunnel debug = 7 output = /var/log/messages client = no cert = /etc/stunnel/stunnel.pem key = /etc/stunnel/stunnel.pem # Accept SSL connections on port 901 and funnel it to # port 902 for swat. [swat] accept = 901 connect = 902
- Crie uma nova entrada do SWAT em sua configuração do
xinetdouinetd.Essa configuração deve ser igual a uma configuração não criptografada regular, mas deve ouvir na porta 902 e usar o nome
swat-stunnelem vez deswat. Deve aceitar conexões apenas na interface do host local. - Desative a configuração original do SWAT no
xinetdouinetd. - Edite /etc/services:
- Duplique a entrada
swat. - Renomeie a duplicata como
swat-stunnel. - Altere o número da porta para 902.
- Duplique a entrada
- Em algumas distribuições, pode ser necessário editar /etc/default/stunnel4 para permitir que
stunnelinicie. Em especial, altere a linhaENABLEDde0para1. - Reinicie o superservidor.
- Inicie o
stunnel.Isso pode geralmente ser feito de forma temporária digitando-se
/etc/initd.d/stunnel startcomo raiz, mas, para executar ostunnelpermanentemente, talvez seja preciso ajustar a configuração SysV.
Com essas alterações feitas, deve ser possível agora acessar o SWAT usando uma conexão criptografada especificando https:// em vez de http:// como o protocolo no navegador da Web. Observe que, da primeira vez que você conectar-se, o navegador provavelmente irá reclamar sobre o certificado não confiável, pois o certificado foi gerado por você mesmo. Aceite esse certificado.
Após configurar o SWAT, pode-se começar a usá-lo. Ele pode ser acessado usando qualquer navegador da Web. Quando você entrar, será possível começar a usar o SWAT para gerenciar o servidor Samba.
Usando seu navegador da Web favorito no computador do servidor Samba, digite http://localhost:901 como o Localizador Uniforme de Recursos (URL); ou, se o SWAT tiver sido configurado para ser acessado por outros computadores, substitua o nome do host por localhost na URL usando qualquer computador que pode acessar o servidor. Se você houver configurado criptografia SSL, substitua https:// por http:// no começo da URL. Se você houver configurado o SWAT para aceitar logins a partir de outros computadores que não o host local, pode usar um navegador da Web em qualquer sistema operacional que desejar — Linux, Mac OS X, Windows e mais. É possível até mesmo usar um navegador em um telefone celular.
Quando você acessar o servidor pela primeira vez, o navegador da Web solicitará um nome de usuário e senha. Insira root como nome de usuário e a senha de raiz como a senha. Você verá em seguida a página principal do SWAT, como mostra a Figura 1.
Figura 1. A página principal do SWAT permite escolher dentre as opções do SWAT
Os botões logo abaixo do logotipo do Samba permitem configurar recursos específicos do Samba — a seção [global], compartilhamentos de arquivo, compartilhamentos de impressora e outros. Em geral, a configuração do Samba por meio do SWAT é autoexplicativa para quem já conhece a configuração do Samba por meio do arquivo smb.conf.
Se você rolar para baixo na página inicial do SWAT, encontrará links para a documentação do Samba. Essa documentação consiste em páginas man para os vários daemons Samba, arquivos de configuração, utilitários etc.
Como exemplo de configuração do SWAT, clique em GLOBALS. A página é atualizada, mostrando as opções que podem ser configuradas na seção [global]
do smb.conf, como mostra a Figura 2. Clique em Advanced se deseja ver mais opções obscuras. A visualização Basic padrão mostra apenas as opções mais comuns.
Figura 2. É possível definir opções usando formulários da Web em vários menus SWAT
Explore as opções disponíveis nesta página e tente alterar algumas. É preciso clicar em Commit Changes para inserir as alterações no arquivo smb.conf e recarregar a configuração.
Se clicar em SHARES ou PRINTERS, você terá a oportunidade de editar os compartilhamentos de arquivo e impressora, respectivamente. A interface é semelhante à da seção
[globals], mas é preciso selecionar o compartilhamento que se quer editar a partir de um menu suspenso, e em seguida clicar em Choose Share. Também é possível criar um novo compartilhamento digitando seu nome em um campo de texto próximo ao botão Create Share, e em seguida clicar no botão.
Botões adicionais permitem realizar outras ações:
- O botão WIZARD leva para uma página que permite realizar rapidamente algumas mudanças de configuração, tais como configurações de domínio comum.
- O botão STATUS mostra o status atual do servidor Samba, por exemplo, quantas conexões ativas ele está gerenciando e quais arquivos ele está acessando. Também é possível iniciar, parar e reiniciar os servidores
smbd,nmbdewinbindd. - O botão VIEW mostra o arquivo de configuração smb.conf atual.
- O botão PASSWORD permite gerenciar usuários — alterar senhas, incluir usuários, excluir usuários e assim por diante. Isso pode ser feito na máquina local ou em outro servidor de Bloco de Mensagens do Servidor (SMB)/Common Internet File System (CIFS).
A maioria desses recursos está disponível apenas para o usuário raiz. As páginas HOME, STATUS, VIEW e PASSWORD podem ser acessadas por usuários ordinários, mas algumas opções não estão disponíveis para eles. Usuários ordinários provavelmente usarão mais a página PASSWORD, pois podem usá-la para alterar suas senhas.
SWAT é uma ferramenta útil, mas não está isenta de limitações e problemas. A maior limitação do SWAT é o fato de não suportar a diretiva include, que pode ser usada no smb.conf para dividir uma configuração entre diversos arquivos, podendo incluir até diferentes arquivos de configuração para clientes diferentes. Se você usar essas configurações, SWAT será inadequado para você — ao menos para configuração de Samba. (Ainda seria possível implementar o SWAT para permitir que usuários alterem suas próprias senhas.)
A outra principal ressalva do SWAT é o fato de ser um risco de segurança. Para minimizar esse risco, é possível fazer com que ele aceite apenas logins do host local e, se for necessário login remoto, configurar para que use criptografia SSL, como descrito anteriormente. Mas, mesmo com essas medidas em efeito, qualquer servidor é um risco de segurança em potencial: o software pode ter erros que não foram descobertos, ou estar configurado de alguma forma errada. Você deve estar ciente desses riscos e tomar as medidas apropriadas, como usar TCP Wrappers, opções do xinetd ou regras de firewall do iptables para limitar o acesso ao computador. Quanto mais exposto o servidor estiver para a Internet, mais arriscada será a configuração.
O próximo tópico nesta série, LPIC-3 objetivo 312.6, aborda problemas de internacionalização em Samba, incluindo o uso de páginas de código e outras opções do Samba para suportar nomes de arquivo em línguas além do inglês em um servidor Samba.
Aprender
-
A documentação oficial do SWAT Samba oferece detalhes adicionais sobre como configurar e usar SWAT.
-
No site do programa LPIC
você encontra objetivos detalhados, listas de tarefas e amostras de perguntas referentes aos três níveis da certificação em administração de sistemas Linux do LPI. Especificamente, veja os
objetivos detalhados do LPI-302 e as
tarefas e amostras de perguntas.
-
Revise toda a série de preparação para os exames LPI no developerWorks, para saber mais sobre os fundamentos do Linux e se preparar para a certificação de administrador de sistemas, com base nos objetivos do exame LPI anteriores a abril de 2009.
-
Exam Preparation Resources for Revised LPIC Exams fornece uma lista de outros recursos de treinamento mantidos pelo LPI para certificação.
-
Na zona Linux do developerWorks, encontre vários
artigos de instruções e tutoriais bem como downloads, fóruns de discussão e uma variedade de outros recursos para desenvolvedores e administradores Linux.
-
Siga o developerWorks no Twitter ou inscreva-se para receber tweets sobre Linux no developerWorks.
-
Fique por dentro dos eventos técnicos e webcasts do developerWorks com foco em uma variedade de produtos da IBM e tópicos do segmento de mercado de TI.
-
Participe de um briefing gratuito do developerWorks para se atualizar rapidamente sobre produtos e ferramentas IBM, bem como tendências do segmento de mercado de TI.
-
Acompanhe as demos on demand no developerWorks que abrangem desde demos de instalação e configuração de produtos para iniciantes até funcionalidades avançadas para desenvolvedores experientes.
Obter produtos e tecnologias
-
O Web site do
stunneloferece downloads e documentação deste programa. -
O Web site do OpenSSL oferece downloads e documentação deste software.
Discutir
-
Participe da comunidade My developerWorks. Entre em contato com outros usuários do developerWorks, enquanto explora os blogs, fóruns, grupos e wikis orientados ao desenvolvedor.

Roderick W. Smith é consultor e autor de dezenas de livros sobre UNIX e Linux, incluindo The Definitive Guide to Samba 3, Linux in a Windows World e Linux Professional Institute Certification Study Guide. Ele é autor do software de particionamento GPT fdisk. Atualmente, Roderick reside em Woonsocket, Rhode Island.