A Aldeia Numaboa ancestral ainda está disponível para visitação. É a versão mais antiga da Aldeia que eu não quis simplesmente descartar depois de mais de 10 milhões de pageviews. Como diz a Sirley, nossa cozinheira e filósofa de plantão: "Misericórdia, ai que dó!"

Se você tiver curiosidade, o endereço é numaboa.net.br.

Leia mais...

Informática Numaboa - Tutoriais e Programação

A praga dos spammeiros

Sex

27

Fev

2009


16:01

(5 votos, média 5.00 de 5) 


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 biggrin

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...

Informações adicionais