Ativando e desativando serviços

A maior parte dos aplicativos são utilitários que são executados quando você clica no ícone do iniciar ou os chama através do terminal. Além deles, existe uma categoria especial de aplicativos, os daemons, que podem ser carregados automaticamente durante o boot.

Uma vez carregado, o daemon executa continuamente alguma operação (como manter o relógio sincronizado com o de um servidor disponível na web), ou escuta em uma terminada porta, oferecendo algum tipo de serviço. Nesta categoria se enquadram todo tipo de servidores, como o SSH, Apache, Proftpd, Bind, Postfix e assim por diante. Durante a instalação, você tem a opção de configurar quais dos servidores instalados serão carregados na hora de boot, mas, naturalmente, a configuração pode ser alterada posteriormente.

No Slackware, o que determina se cada um vai ser carregado ou não é um script armazenado na pasta “/etc/rc.d/“. Cada servidor instalado cria um script com seu nome dentro da pasta e o sistema simplesmente executa tudo que encontrar dentro da pasta na hora do boot.

A forma mais simples de desativar um serviço no Slackware é tirar a permissão de execução do script correspondente, como em:

# chmod -x /etc/rc.d/rc.sshd

Se depois você mudar de ideia, basta ativar novamente:

# chmod +x /etc/rc.d/rc.sshd

Você pode também parar e reiniciar os serviços ativos (ao alterar sua configuração, por exemplo) usando os parâmetros start (iniciar), stop (parar) e restart (parar e depois iniciar novamente, ativando mudanças na configuração), como em:

# /etc/init.d/rc.sshd stop

# /etc/init.d/rc.sshd start

Para verificar quais serviços estão ativos, use o comando “ls /etc/rc.d/”. Os que aparecem em verde são os com permissão de execução, os que estão ativos; enquanto os em branco são os desativados:

Caso o uso de cores não esteja ativado, crie o arquivo “.bashrc” dentro do diretório “/root”, ou do diretório home do login que estiver utilizando, contendo a linha:

alias ls="ls --color=auto"

Aqui vai um resumo da função dos principais serviços. Lembre-se de que os scripts são criados apenas quando o pacote correspondente é instalado. Outras distribuições usam uma estrutura semelhante, mas geralmente colocando os scripts dentro da pasta “/etc/init.d/” ao invés de usar a pasta “/etc/rc.d/” como no Slackware:

rc.acpid: O acpid é responsável por ativar o suporte a ACPI, que por sua vez é o responsável pelos recursos de economia de energia, suspender, hibernar e outras funções. Ele é um recurso básico em qualquer PC atual, sobretudo nos notebooks.

rc.alsa: Como vimos anteriormente, o Alsa é o responsável pelo suporte a placas de som. O rc.alsa é o script que carrega os módulos do Alsa, fazendo com que a placa de som seja ativada durante o boot. Mesmo com o serviço desativado, existe a possibilidade de fazer a placa funcionar carregando os módulos e ativando os componentes manualmente, mas, naturalmente, é muito mais fácil simplesmente manter o serviço ativo. 🙂

rc.atalk: O talk é um serviço antigo, que permite enviar mensagens para outros micros da rede local. Ele é pouco usado atualmente e fica desativado por padrão.

rc.bind: O Bind é um servidor DNS. Se ele estiver ativo, você pode usar o endereço “127.0.0.1” como DNS na configuração da rede, sem depender do DNS do provedor. Em um servidor, ele pode ser configurado para responder pelos domínios hospedados.

rc.cups: O Cups controla o suporte a impressão. Ele é necessário tanto para usar impressoras locais quanto impressoras de rede. Ele pode ser desativado para economizar recursos da máquina, mas, naturalmente, você só vai conseguir usar uma impressora depois de ativá-lo novamente.

rc.dnsmasq: O dnsmasq é um servidor DHCP e DNS reduzido, que pode substituir o bind e o dhcpd. Se seu objetivo é simplesmente compartilhar a conexão com os micros da rede local, ele pode ser uma boa opção, já que é mais leve e mais simples. Lembre-se de que ao usar o dnsmasq você não deve ativar nem o bind nem o dhcpd, e vice-versa.

rc.firewall: Este é um script opcional, que pode ser usado para incluir (manualmente) regras de firewall, para fechar as portas do seu micro, compartilhar a conexão, encaminhar portas para micros da rede interna (no caso de compartilhar a conexão) e assim por diante.

Para um micro doméstico, o script a seguir seria uma configuração simples e efetiva. Ele permite o acesso por parte dos outros micros da rede local, mas fecha o micro para acessos provenientes da Internet, sem prejudicar a navegação. Lembre-se de substituir o “192.168.0.0/255.255.255.0” pela faixa de endereços e máscara usada na sua rede local, caso diferente:

iptables -A INPUT -s 192.168.0.0/255.255.255.0 -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -p tcp --syn -j DROP

Você pode ver uma explicação mais elaborada sobre o Iptables no livro Servidores Linux, Guia Prático.

rc.gpm: O gpm permite usar o mouse em modo texto, facilitando o uso de aplicativos como o links e o mc. Em alguns casos ele pode conflitar com o X, tornando o movimento do rastro do mouse errático, de forma que muitos preferem mantê-lo desativado.

rc.httpd: Este script ativa ou desativa o servidor Apache, caso instalado. Caso ativo, você pode testar o servidor web instalado na sua máquina acessando o endereço “127.0.0.1:80” no navegador.

rc.inet1: Este script tem a função de ativar a ou as placas de rede durante o boot. Ele lê a configuração de cada placa (IP, máscara, etc.) a partir do arquivo “/etc/rc.d/rc.inet1.conf”, que, por sua vez, é gerado automaticamente ao configurar a rede usando o netconf. Lembre-se de que a configuração dos servidores DNS usados para acessar a internet não vai nestes arquivos, mas sim no “/etc/resolv.conf”.

rc.inet2: Este script é responsável por carregar vários outros servidores, como o SSH, NFS e NIS (caso habilitados), carregar o inetd e também montar compartilhamentos de rede NFS ou Samba que você tenha eventualmente incluído no “/etc/fstab”.

rc.ip_forward: Ativa o compartilhamento da conexão com os outros micros da rede local. Normalmente, você usa este serviço em conjunto com o dnsmasq ou com o bind e dhcpd.

rc.local: Este script pode ser usado para incluir comandos diversos que você quer que sejam executados durante o boot. Se o sistema não estiver ativando o DMA para o HD, por exemplo, você poderia incluir o comando “hdparm -c1 -d1 /dev/hda” para forçar a ativação.

rc.modules: Este arquivo é usado para carregar módulos de kernel adicionais durante o boot. Como (fora as funções normais do HAL e de utilitários básicos, como o alsaconf) o Slackware não inclui muitas funções de detecção de hardware, em alguns casos você pode precisar editar este arquivo para ativar algum componente. Para facilitar, ele vem com vários comentários e vários módulos separados por categorias.

rc.nfsd: O NFS é um protocolo usado para compartilhar arquivos entre máquinas Linux. Este script ativa o servidor NFS, que é, por sua vez, configurado através do arquivo “/etc/exports”. Ao ativar o nfsd, é necessário ativar também o portmap.

rc.pcmcia: Este script ativa o suporte genérico a placas PCMCIA. Pode ser desativado se você não está usando um notebook, ou se não pretende usar nenhuma placa PCMCIA/PC-Card.

rc.portmap: O portmap é usado pelo NFS e também pelo NIS (um serviço de autenticação, pouco usado atualmente). O portmap recebe as conexões dos clientes e as envia para os servidores propriamente ditos. Sem ele, nenhum dos dois funciona.

rc.samba: O samba permite compartilhar arquivos com máquinas Windows e também com outras máquinas Linux, que tenham o cliente samba instalado. Ao instalar o pacote “samba” no Slackware você instala ambos, mas em outras distribuições é mais comum encontrar o samba dividido em dois ou mais pacotes, permitindo que você instale apenas o cliente, ou apenas o servidor.

Este script inicia o servidor Samba. Você não precisa dele se deseja apenas acessar compartilhamentos de outras máquinas, sem compartilhar nada. O Samba é configurado através do arquivo “/etc/samba/smb.conf” ou através do Swat. É possível usar o Samba para, desde simplesmente compartilhar algumas pastas numa rede ponto a ponto, até configurar um servidor de domínio. Você pode ver mais detalhes sobre a configuração do Samba e outros servidores no meu livro Servidores Linux, Guia Prático.

rc.sendmail: O Sendmail é um servidor de e-mails completo, que permite tanto enviar, quanto receber e-mails via SMTP. Alguns usuários das antigas deixam o Sendmail ativo para poder enviar e-mails diretamente, sem depender do SMTP do provedor, mas hoje em dia isso tem se tornado problemático devido aos diversos tipos de filtros e bloqueios que os provedores e empresas de hospedagem passaram a usar graças ao problema do spam. Muitos e-mails enviados através de conexões domésticas ficarão retidos em algum filtro e não chegarão ao destinatário.

O Sendmail possui um histórico de segurança complicado, com muitos problemas graves descobertos ao longo de sua história. Se você não pretende realmente configurar um servidor de e-mails, é importante desativá-lo. Hoje em dia o Sendmail vem perdendo espaço para outros servidores, como o Postfix e o Qmail.

rc.serial: Este script ativa as portas seriais do micro. Ele é usado apenas em micros antigos, que ainda possuem portas seriais.

rc.sshd: O SSH permite acessar sua máquina remotamente, seja para administrar e resolver problemas remotamente, seja para rodar programas. Assim como o Samba, o SSH é composto de um cliente e um servidor, que é ativado por este script.

A configuração do servidor SSH (feita na máquina que será acessada remotamente) vai no arquivo “/etc/ssh/sshd_config”. No Slackware o suporte ao uso de aplicativos gráficos remotamente vem desabilitado por padrão. Para reativar, adicione a linha “X11Forwarding yes” no final do arquivo.

Aproveite para adicionar a linha “ForwardX11 yes” também no arquivo “/etc/ssh/ssh_config” da máquina cliente. Apesar do nome ser parecido (apenas uma letra a menos), ele é bem diferente do sshd_config, contendo a configuração do cliente SSH.

rc.syslog: O syslog é responsável por gerar os logs do sistema, que podem ser acompanhados através do arquivo “/var/log/syslog”. Embora não seja obrigatório, é recomendável mantê-lo ativo.

rc.sysvinit: O Slackware usa uma estrutura de scripts de inicialização diferente de outras distribuições, similar à organização dos BSDs. É por isso que no Slackware os scripts vão na pasta “/etc/rc.d” ao invés da “/etc/init.d” e todos começam com “rc.”. Este script cria uma camada de compatibilidade que permite que muitos programas escritos para outras distribuições possam funcionar no Slackware.

rc.udev: O udev é o responsável por detectar periféricos (incluindo periféricos USB e dispositivos removíveis em geral), carregando os módulos apropriados, criando os devices de acesso e executando outras funções necessárias para ativá-lo, tarefa que em distribuições antigas era executado pelo hotplug. O udev é um dos serviços essenciais do sistema em qualquer distribuição atual, por isso você nunca deve desativá-lo.

rc.yp: Este script ativa o NIS, um sistema de autenticação para máquinas Linux, que permite configurar um servidor central, onde os clientes passam a fazer login, como ao usar um servidor de domínio em uma rede Microsoft. O NIS vem perdendo terreno para o LDAP e outros protocolos, pois as informações são transmitidas em texto puro pela rede e podem ser facilmente interceptadas. Assim como no caso do Sendmail, este script só deve ficar ativo caso você realmente utilize o NIS, seja como servidor, ou como cliente. Em ambos os casos, é necessário editar o script, colocando as informações da sua rede.

Concluindo, além dos scripts, existe uma segunda categoria de serviços que são inicializados diretamente através do inetd. Ele permite economizar recursos do sistema, fazendo com que serviços pouco usados (como o Swat, que usamos para configurar o Samba) sejam carregados apenas quando forem necessários, ao invés de ficarem o tempo todo carregados na memória. Você pode configurá-lo através do arquivo “/etc/inetd.conf“.

Por padrão, o arquivo vem com muitas linhas comentadas com exemplos de configuração e apenas o “time” e o “consat” ativados. Cada linha é um comando que carrega algum serviço ou outro componente do sistema. Para desativar um determinado serviço você precisa apenas comentar a linha (adicionando uma #) e descomentá-la caso queira ativá-lo novamente.

Assim como no caso dos scripts no rc.d, você deve manter inicializados apenas os serviços que realmente pretender usar, para evitar abrir brechas de segurança na sua máquina.

Sobre o Autor

Redes Sociais:

Deixe seu comentário

X