Informática Numaboa - Tutoriais e Programação
A praga dos spammeiros
Sex 27 Fev 2009 16:01 |
- Detalhes
- Categoria: Joomla
- Atualização: Segunda, 02 Julho 2012 19:42
- Autor: vovó Vicki
- Acessos: 8627
Acionando o iptables
Como já comentei anteriormente, o iptables é uma prerrogativa do usuário root. O plugin, rodando sob a hegemonia do Apache, é do usuário nobody. Pelo menos é assim na minha configuração (para confirmar a sua, dê um ps aux no seu console para determinar o usuário do httpd - Apache). Viiixxxiii, o que fazer para que o usuário nobody pudesse alterar o firewall via iptables?
O arquivo sudoers
No Linux existe um arquivo de configuração no qual podemos definir os privilégios de execução dos usuários do sistema. Este arquivo é o sudoers onde configuramos os sudo. Para encontrá-lo use um whereis:
# whereis sudoers sudoers: /etc/sudoers /usr/man/man5/sudoers.5.gz /usr/share/man/man5/sudoers.5.gz
Na minha distribuição Linux (e acho que em qualquer uma delas) encontrei /etc/sudoers. Dando um cat /etc/sudoers encontrei o seguinte:
# sudoers file. # # This file MUST be edited with the 'visudo' command as root. # # See the sudoers man page for the details on how to write a sudoers file. # # Host alias specification # User alias specification # Cmnd alias specification # Defaults specification # Runas alias specification # User privilege specification root ALL=(ALL) ALL # Uncomment to allow people in group wheel to run all commands # %wheel ALL=(ALL) ALL # Same thing without a password # %wheel ALL=(ALL) NOPASSWD: ALL # Samples # %users ALL=/sbin/mount /cdrom,/sbin/umount /cdrom # %users localhost=/sbin/shutdown -h now
Como nunca havia mexido neste arquivo, dei uma pesquisada e cheguei à conclusão de que deveria inserir uma linha que conferisse ao usuário nobody o direito de usar o iptables. Como é meu hábito, inseri a configuração após a última linha do arquivo:
nobody server = NOPASSWD: /usr/sbin/iptables
onde server é o nome do servidor. Pra mim estava tudo em riba, mas o iptables simplesmente se recusava a reagir. Toca pesquisar novamente. Descobri que todos aqueles aparentes comentários, como # Host alias specification e # User alias specification não eram comentários coisa nenhuma - eram seções do arquivo de configuração! Em primeiro lugar, não podem ser eliminados e, em segundo lugar, minha nova inserção estava fora da seção apropriada. Tirei então minha linha do fim do arquivo e a coloquei na seção # User privilege specification, logo após a configuração do usuário root:
# User privilege specification root ALL=(ALL) ALL nobody server = NOPASSWD: /usr/sbin/iptables
Não é que funcionou? Vocês nem podem imaginar como fiquei feliz. Uma verdadeira belezura, os IPs bichados começaram a aparecer no meu firewall! Foi minha primeira vitória
Comecei a me animar e, de tempos em tempos, chamava um iptables -L -v -n --line-numbers no meu console e a lista só ia aumentando. Deu uma sossegada no site, mas ainda não estava como eu queria...