ct

    Usando o Swat

    Samba, parte 1: Instalação e configuração usando o swat

    Carlos E. Morimoto
    27/11/2007


    O Swat é um utilitário de configuração via web, similar ao encontrado nos modems ADSL. Isso permite que ele seja acessado remotamente e facilita a instalação em servidores sem o ambiente gráfico instalado. Esta mesma abordagem é utilizada por muitos outros utilitários, como o Webmin.

    Manter o ambiente gráfico instalado e ativo em um servidor dedicado é considerado um desperdício de recursos, por isso os desenvolvedores de utilitários de configuração evitam depender de bibliotecas gráficas. Desse modo, mesmo distribuições minimalistas podem incluí-los. No caso de redes de pequeno ou médio porte, você pode até mesmo usar uma máquina antiga como servidor de arquivos, fazendo uma instalação minimalista do Debian, Ubuntu ou outra distribuição e instalando o Samba e o Swat em modo texto.

    Como facilitador, o Swat acaba sendo uma faca de dois gumes, pois ao mesmo tempo em que facilita a configuração, por ser uma ferramenta visual e dispensar a edição manual do arquivo, ele complica, por oferecer um grande número de opções específicas ou obsoletas. Vamos então aprender como fazer uma configuração básica usando o Swat e depois nos aprofundar na configuração do Samba editando o smb.conf manualmente. Se preferir, você pode ir diretamente para o tópico seguinte.

    No Debian, Slackware e também no Gentoo, o Swat é inicializado através do inetd. O inetd tem a função de monitorar determinadas portas TCP e carregam serviços sob demanda. Isto evita que utilitários que são acessados esporadicamente (como o Swat) precisem ficar ativos o tempo todo, consumindo recursos do sistema.

    Apesar disso, a configuração dos dois é diferente: no caso das distribuições que usam o inetd, você precisa adicionar (ou descomentar) a linha abaixo no arquivo de configuração do inetd, o "/etc/inetd.conf":

    swat stream tcp nowait.400 root /usr/sbin/tcpd /usr/sbin/swat

    Para que a alteração entre em vigor, reinicie o inetd com o comando:

    # /etc/init.d/inetd restart

    No caso do Ubuntu, o inetd não vem instalado por padrão. A documentação recomenda usar o xinetd no lugar dele, o que é uma boa deixa para falar um pouco sobre as diferenças de configuração entre os dois serviços. O xinetd tem a mesma função do inetd ou seja, carregar serviços sob demanda, mas é mais recente e um pouco mais seguro, de forma que tem sido mais usado.

    O primeiro passo para instalar o Swat no Ubuntu seria instalar o swat e o xinetd usando o apt-get:

    # apt-get install swat xinetd

    Ao invés de usar um único arquivo central, no xinetd é utilizada uma pasta com arquivos de configuração separados para cada serviço em vez de um arquivo único como no caso do inetd. Para ativar o swat, é necessário criar o arquivo "/etc/xinetd.d/swat", com o seguinte conteúdo:

    service swat
    {
    port = 901
    socket_type = stream
    wait = no
    user = root
    server = /usr/sbin/swat
    log_on_failure += USERID
    disable = no
    }

    Depois de criado o arquivo, reinicie o serviço e o Swat ficará disponível.

    # /etc/init.d/xinetd restart

    Nas distribuições derivadas do Red Hat, o Swat também é inicializado através do xinetd. Para ativá-lo depois da instalação, use os comandos:

    # chkconfig swat on
    # service xinetd restart

    Em caso de problemas, abra o arquivo "/etc/xinetd.d/swat" e substitua a linha "disable = yes" (caso presente) por "disable = no" e reinicie novamente o serviço xinetd. No Fedora, você pode também reiniciar os serviços usando o utilitário "systemconfig-services", que funciona como uma interface gráfica para o comando "service".

    Como pode ver, devido às diferenças de configuração entre as distribuições e o uso do xinetd/inetd, ativar o swat pode ser um pouco mais complicado do que ativar outros serviços, embora o Samba propriamente dito não dependa dele para fazer seu trabalho.

    Para acessar o Swat localmente, basta abrir o Firefox ou outro Browser disponível e acessar o endereço http://localhost:901. No prompt de login, forneça a senha de root (do sistema) para acessar. As credenciais do root são necessárias para que o Swat possa alterar os arquivos de configuração, reiniciar os serviços e outras operações que ficam disponíveis apenas para o root. No caso do Ubuntu, você pode definir a senha de root usando o comando "sudo passwd".

    Ao configurar um servidor remotamente, ou ao instalar o Samba/Swat em um servidor sem o ambiente gráfico instalado, você pode acessar o swat remotamente, a partir de qualquer máquina rede. Abra o navegador e acesse o endereço "http://ip-do-servidor:901", como em: http://192.168.1.1:901.

    Uma observação é que o Swat não utiliza encriptação, o que é uma temeridade do ponto de vista da segurança, já que alguém poderia capturar a senha sniffando a rede. Você pode evitar isso criando um túnel seguro usando o SSH e acessando o Swat através dele. Para isso, é preciso apenas que o SSH esteja ativado no servidor. Para criar o túnel, use o comando:

    # ssh -f -N -L901:192.168.1.1:901 -l login 192.168.1.1

    ... onde o "192.168.1.1" é o endereço IP do servidor, o "901" é a porta do Swat e o "login" é a sua conta no servidor. Este comando cria um túnel encriptado entre a porta 901 do seu micro e a porta 901 do servidor, que permite acessar o Swat de forma segura.

    Com o túnel ativado, você acessa o Swat usando o endereço http://localhost:901, como se estivesse sentado na frente do servidor. O SSH se encarrega de transportar as informações de forma transparente.

    Ao abrir o Swat, você verá um menu como o do screenshot abaixo, com vários links para a documentação disponível sobre o Samba, que você pode consultar para se aprofundar no sistema. Na parte de cima, estão os links para as seções da configuração, que é o que nos interessa:

    index_html_m3c08707d

    Na seção Password, você pode cadastrar usuários, substituindo o uso manual do comando "smbpasswd -a". Neste caso, você precisará primeiro cadastrar os usuários no sistema, utilizando o comando adduser. O Swat apenas cadastra os usuários no Samba:

    index_html_m1840ef01

    Em seguida, acesse a seção "Globals", que engloba todas as configurações de rede e acesso.

    A opção "netbios name" indica o nome do servidor, através do qual ele será identificado na rede Windows. Normalmente se utiliza o nome da máquina, mas isso não é obrigatório, já que o nome de máquina utilizado pelo Samba não está relacionado ao nome definido no arquivo "/etc/hosts" ou à configuração do DNS. O nome pode ter até 15 caracteres e ser composto por letras e números, além de espaços e dos caracteres a seguir: ! @ # $ % ^ & ( ) - ' { } ~.

    Ao usar mais do que 15 caracteres, os caracteres excedentes serão ignorados. É também permitido o uso de pontos, mas usá-los não é uma boa idéia, pois torna os nomes difíceis de diferenciar de nomes de domínio, o que pode confundir os usuários.

    A opção "workgroup" indica o grupo de trabalho ao qual ele pertence. Você pode tanto utilizar o mesmo grupo de trabalho em todas as máquinas da rede, quanto agrupar suas máquinas em grupos distintos como "diretoria", "vendas", etc.

    index_html_m65c23e9f

    A seguir temos a opção "interfaces", que permite limitar os acessos ao servidor se você tiver mais de uma placa de rede. É o caso, por exemplo, de quem acessa via ADSL ou cabo e possui uma segunda placa de rede para compartilhar a conexão com os micros da rede local. Nestes casos, a placa da web será reconhecida como eth0, enquanto a placa da rede local será reconhecida como eth1, por exemplo.

    Você pode, então, preencher o campo com o endereço da placa da rede local (eth1). Assim, o Samba só aceitará conexões vindas dos micros da rede local, descartando automaticamente todas as tentativas de acesso vindas da internet. Caso o campo permaneça vazio, o Samba permite acessos vindos de todas as placas de rede, e é necessário bloquear os acessos provenientes da internet usando o firewall.

    Na seção Security Options temos uma opção capciosa, que é a opção "security" que aceita os valores "user", "share", "server" e "domain. Com nomes tão descritivos a configuração fica fácil, já que "server" é para quando estamos configurando o Samba como servidor e "domain" é para quando ele está sendo configurado como controlador de domínio, certo? Errado! :)

    As opções share e server são opções obsoletas (como veremos em detalhes mais a seguir) e a opção "domain" é usada quando você deseja que o servidor Samba seja configurado como membro (cliente) de um domínio sob responsabilidade de outro servidor. Se você está configurando um servidor Samba, seja como um servidor de grupo de trabalho, seja como controlador de domínio, a opção correta para a opção security é a "user".

    Utilizando o modo user, as permissões de acesso aos compartilhamentos do samba ficam condicionadas às permissões de acesso de cada usuário. Por exemplo, se você compartilhar a pasta /home/maria/arquivos, por default apenas a usuária maria terá permissão para gravar novos arquivos e alterar o conteúdo da pasta.

    Para que outros usuários tenham acesso à pasta, você deve dar permissão a eles, criando um novo grupo e dando permissão de escrita para os integrantes do mesmo. Outra opção é adicionar os demais usuários no grupo "maria" (cada usuário possui um grupo com o mesmo nome do login, criado no momento em que é cadastrado) e configurar as permissões de acesso de forma que o grupo possa escrever na pasta. Você pode fazer a administração de grupos usando o "users-admin", que facilita bastante as coisas ao trabalhar com um grande número de usuários. Lembre-se que no Debian ele é instalado através do pacote "gnome-system-tools". No Fedora ele se chama "system-config-users".

    index_html_81b855d

    Se você não está tão preocupado com a segurança, pode fazer do jeito "fácil", alterando a opção "outros" nas permissões de acesso da pasta, que dá acesso a todo mundo. Isso faz com que qualquer usuário local do sistema (ou logado via SSH) tenha acesso aos arquivos da pasta, mas não permite necessariamente que outros usuários do Samba possam acessar, pois neste caso ainda são usadas as permissões de acesso no Samba. A alteração das permissões da pasta é feita usando o Konqueror ou outro gerenciador de arquivos e não através do Samba.

    index_html_m246343c0

    Ou seja, é necessário fazer com que os usuários do grupo, ou todos os usuários do sistema, possam escrever na pasta, evitando que as permissões do sistema conflitem com as permissões configuradas no Samba. Se configuro o Samba para permitir que o usuário "joao" possa escrever no compartilhamento, mas a configuração das permissões da pasta compartilhada não permitem isso, o joao vai continuar sem conseguir escrever. Ao criar compartilhamentos no Samba, é preciso se preocupar com as duas coisas.

    Mais abaixo, temos a opção Encrypt Password. Ela também é importe, e deve ficar sempre ativada (Encrypt Password = yes).

    Todas as versões do Windows, incluindo o 3.11 suportam o uso de senhas encriptadas, mas até o Windows 95 original os clientes deixavam de usar a encriptação e passavam a enviar as senhas em texto puro quando percebiam que o interlocutor não suportava encriptação. Entretanto, isso abria margem para todo tipo de ataques, de forma que a partir do Windows 95 OSR/2 e do Windows NT 4 SP3, senhas em texto puro deixaram de ser suportadas, de forma que ao desativar o uso de senhas encriptadas no Samba, o servidor simplesmente não conseguirá conversar com as máquinas Windows e você vai ficar quebrando a cabeça até se lembrar deste parágrafo ;).

    A partir do Samba 3 existe a opção de fazer com que o próprio Samba mantenha as senhas dos usuários sincronizadas em relação às senhas dos mesmos no sistema. Antigamente, sempre que você alterava a senha de um usuário no Samba, usando o "smbpasswd", precisava alterar também a senha do sistema, usando o comando "passwd". As duas senhas precisam ficar em sincronismo, do contrário caímos no problema das permissões, onde o Samba permite que o usuário acesse o compartilhamento, mas o sistema não permite que o Samba acesse os arquivos no disco.

    Para ativar este recurso, ative a opção "unix password sync" no Swat. Originalmente, esta opção fica desativada e aparece apenas dentro das opções avançadas. Para chegar até ela você deve clicar no botão "Change View To: Advanced" no topo da tela. Depois de alterar, clique no Commit Changes".

    Para que tudo funcione, é necessário que as opções "passwd program" e "passwd chat" estejam configuradas com (respectivamente) os valores: "/usr/bin/passwd %u" e "*Enter\snew\sUNIX\spassword:* %n\n *Retype\snew\sUNIX\spassword:* %n\n .". Estes já são os valores padrão no Swat, mas não custa verificar.

    index_html_m39d873f5

    A opção "Hosts Allow" deve incluir os endereços IP de todos os computadores que terão permissão para acessar o servidor. Se quiser que todos os micros da rede tenham acesso, basta escrever apenas a primeira parte do endereço IP, como em "192.168.0.", onde todos os endereços dentro do escopo serão permitidos. Se for incluir mais de um endereço ou mais de um escopo de endereços, separe-os usando vírgula e espaço, como em: "192.168.0., 10.0.0., 123.73.45.167". Caso o campo permaneça vazio, a opção fica desativada e todos os micros que tiverem acesso ao servidor Samba poderão acessar.

    index_html_m6f806f43

    A opção "Hosts Deny", por sua vez, permite especificar máquinas que não terão permissão para acessar o servidor. Estas duas opções possuem algumas peculiaridades, sobretudo quando usadas em conjunto. Veremos mais detalhes sobre o uso das duas mais adiante.

    Em uma rede Windows, uma das máquinas fica sempre responsável por montar e atualizar uma lista dos compartilhamentos disponíveis e enviá-la aos demais, conforme solicitado. O host que executa esta função é chamado de "Master Browser".

    De uma forma geral, todas as versões do Windows são capazes de atuar como Master Browser da rede e o cargo pode mudar de dono conforme as máquinas vão sendo ligadas e desligadas, mas o Samba executa o trabalho de forma muito eficiente, de forma que, a menos que você tenha outro servidor em posição hierarquicamente superior, é sempre interessante delegar esta tarefa ao servidor Samba.

    O cargo de Master Browser é disputado através de uma eleição, onde os micros da rede enviam pacotes de broadcast contendo informações sobre o sistema operacional usado, o tempo de uptime e outras informações. Ao receber o pacote de broadcast de um "oponente", cada máquina compara suas credenciais com as do pacote recebido. Se suas credenciais forem inferiores, ela desiste da eleição, caso contrário responde enviando o pacote com suas próprias credencias. Este processo de eliminação continua até que sobre apenas uma máquina, que passa então a ser o Master Browser da rede, até que seja desconectado da rede, ou perca o cargo para outra máquina com credenciais superiores.

    A principal credencial é o "OS Level", que nas máquinas Windows varia de acordo com a versão do sistema. As máquinas com o Windows NT Server, 2000 Server, 2003 Server ou 2008 Server possuem um Os Level de 32, as com o Windows NT Workstation, 2000 Professional ou qualquer versão doméstica do XP ou Vista possuem OS Level de 16 e as versões antigas do Windows (3.11, 95, 98, ME e SE) possuem OS Level de apenas 1.

    Nos servidores Samba o valor é ajustado através da opção "OS Level", na seção Browse Options. Isso permite que você "trapaceie", fazendo com que o servidor Samba sempre ganhe as eleições. Para isso, configure esta opção com um valor alto, 100 por exemplo, para que ele sempre ganhe as eleições (você pode usar qualquer valor entre 0 e 255). O default dessa opção é 20, o que faz com que o servidor Samba ganhe de todas as máquinas Windows, com exceção das versões Server.

    Para completar, deixe a opção "Local Master" e "Preferred Master" como "Yes". A opção "Local Master" faz com que o servidor Samba convoque uma nova eleição sempre que necessário (de forma a defender o cargo caso outra máquina tente assumir a posição) e a "Preferred Master" dá a ele uma leve vantagem quando confrontado com outra máquina com o mesmo OS Level:

    index_html_m79f64d60

    É importante enfatizar que você nunca deve colocar dois servidores Samba na rede com o mesmo OS Level e com a opção "Preferred Master" ativada, caso contrário eles iniciarão uma disputa interminável pelo cargo, o que fará com que a navegação na rede se torne intermitente. Ao usar vários servidores Samba na rede, crie uma hierarquia, usando valores diferentes para a opção OS Level.

    Se, por outro lado, você não desejar que o servidor Samba participe das eleições (caso já tenha outro servidor desempenhando este papel), basta definir a opção "Local Master" com o valor "no".

    Abaixo, deixe a opção WINS Support ativada (Yes) para que o servidor Samba atue como um servidor WINS para os demais micros da rede. A opção WINS Server deve ser deixada em branco, a menos que exista na rede algum servidor Wins (rodando o NT server ou o 2K server) ao qual o servidor Linux esteja subordinado. Caso o único servidor seja a máquina Linux, você pode configurar as máquinas Windows para utilizá-la como servidor Wins, para isto basta colocar o seu endereço IP no campo "Servidor Wins" na configuração de rede das estações.

    Terminando, pressione o botão "Commit Changes" no topo da tela para que as alterações sejam salvas no arquivo "/etc/samba/smb.conf".

    Uma observação importante é que o Swat lê o arquivo smb.conf ao ser aberto, lendo as opções configuradas e mostrando-as na interface, mas gera um novo arquivo sempre que você clica no "Commit Changes". Ao ler o arquivo, ele procura por trechos específicos de texto, ignorando tudo que for diferente. Isso faz com que ele remova qualquer tipo de comentário incluído manualmente no arquivo. Em geral, quem tem o hábito de editar manualmente o smb.conf, acaba nunca usando o Swat e vive-versa.

    Depois de cadastrar os usuários no sistema e no Samba e configurar a seção Globals, falta apenas configurar as pastas que serão compartilhadas com as estações, através da seção "Shares".

    Cada usuário válido cadastrado no sistema possui automaticamente um diretório home. Estas pastas ficam dentro do diretório /home e podem ser usadas para guardar arquivos pessoais, já que, a menos que seja estabelecido o contrário, um usuário não terá acesso à pasta pessoal do outro. Além dos diretórios home, você pode compartilhar mais pastas de uso geral. Para criar um compartilhamento, basta escrever seu nome no campo no topo da tela e clicar no botão "Create Share".

    index_html_29d300ca

    Depois de criado um compartilhamento, escolha-o na lista e clique no botão "Choose Share" para configurá-la. Você verá uma lista de opções, contendo campos para especificar usuários válidos e inválidos, usuários que podem ou não escrever no compartilhamento, nomes ou endereços de máquinas, entre outras opções.

    index_html_m7f02fbbd

    O campo "path" é o mais importante, pois indica justamente qual pasta do sistema será compartilhada. O nome do compartilhamento diz apenas com que nome ele aparecerá no ambiente de rede, que não precisa necessariamente ser o mesmo nome da pasta. A opção "comment" permite que você escreva um breve comentário sobre a pasta que também poderá ser visualizado pelos usuários no ambiente de rede. Este comentário é apenas para orientação, não tem efeito algum sobre o compartilhamento.

    A opção "read only" determina se a pasta ficará disponível apenas para leitura (opção Yes) ou se os usuários poderão também gravar arquivos (opção No). Você pode também determinar quais máquinas terão acesso ao compartilhamento através das opções "Hosts Allow" e "Hosts Deny". Note que as configurações das opções "Hosts Allow" e "Hosts Deny" incluídas na seção global possuem precedência sobre as colocadas dentro da configuração dos compartilhamentos, por isso (salvo poucas exceções), elas não são usadas em conjunto.

    A opção "browseable" permite configurar se o compartilhamento aparecerá entre os outros compartilhamentos do servidor no ambiente de rede, ou se será um compartilhamento oculto, que poderá ser acessado apenas por quem souber que ele existe. Isso tem uma função semelhante a colocar um "$" em uma pasta compartilhada no Windows. Ela fica compartilhada, mas não aparece no ambiente de rede. Apenas usuários que saibam que o compartilhamento existe conseguirão acessá-lo. Esta opção tem efeito apenas sobre os clientes Windows, pois no Linux a maior parte dos programas clientes (como o Smb4k) mostra os compartilhamentos ocultos por padrão.

    Finalmente, a opção "available" especifica se o compartilhamento está ativado ou não. Você pode desativar temporariamente um compartilhamento configurando esta opção como "No". Fazendo isso, ele continuará no sistema e você poderá torná-lo disponível quando quiser, alterando a opção para "Yes".

    Um detalhe importante é que os usuários só terão permissão para acessar pastas que o login permite acessar. Por exemplo, no Linux o único usuário que pode acessar a pasta /root é o próprio root, ou outro autorizado por ele. Mesmo que você compartilhe a pasta root através do Samba, os demais usuários não poderão acessá-la.

    Para editar as permissões de uma pasta, basta abrir o gerenciador de arquivos e, nas propriedades da pasta, acessar a guia "Permissões". As permissões podem ser dadas apenas ao usuário, para todos os usuários pertencentes ao grupo do usuário dono da pasta ou para todos os usuários. A opção "Aplicar mudanças a todas as subpastas e seus conteúdos" deve ficar marcada para que as permissões sejam aplicadas também às subpastas.

    Terminadas as configurações, o servidor já irá aparecer no ambiente de rede, como se fosse um servidor Windows. Os compartilhamentos podem ser acessados de acordo com as permissões que tiverem sido configuradas, mapeados como unidades de rede, entre outros recursos.

    Para compartilhar uma impressora já instalada na máquina Linux, o procedimento é o mesmo. Dentro do Swat, acesse a seção printers, escolha a impressora a ser compartilhada (a lista mostrará todas as instaladas no sistema), configure a opção available como "yes" e ajuste as permissões de acesso, como vimos anteriormente. No Mandriva, você pode instalar impressoras através do Control Center. No Fedora está disponível o "system-config-printer", que contém basicamente as mesmas funções. Em outras distribuições, você pode usar o kaddprinterwizard ou a própria interface de administração do Cups, que você acessa (via navegador) através da URL: http://127.0.01:631 (veja mais detalhes sobre o compartilhamento de impressoras na quarta parte deste tutorial).



    Página 04 de 05
        



    Blog:

    Add to Google

    » Gostou do texto? Veja nossos livros impressos:
    Hardware | Redes | Servidores | Kurumin 7

    ... ou encontre o que procura usando a busca:

cb
Livros de Carlos E. Morimoto HOME