Protegendo seu diretório /tmp

15 / 01 / 2008   Sem categoria

Parte 1 da série sobre segurança em unix.

ATENÇÃO: antes de executar os comandos leia o item 7 das explicações.

Todo o sistema operacional Linux possui um ou mais diretórios para aquivos temporários, que os programas utilizam para escrever algo que depois será descartado. No unix, tradicionalmente, este diretório é o /tmp. Dependendo da sua distribuição pode haver outros, com /var/tmp, etc…

Um usuário malicioso poderia através de um simples formulário mal escrito enviar um script para executar comandos no seu servidor e torna-lo um zumbi para spammers, entre centenas de outras desgraças que podem acontecer. Por isso é MUITO importante impedir que arquivos colocados no diretório /tmp possam ser executados. Os programas que fazem uso dele precisam apenas de permissão de leitura e escrita, não de execução. Pois bem, vamos à receita de bolo. Claro que vale o tradicional aviso: não me responsabilizo por eventuais danos ou perdas que ocorram pela utilização do roteiro abaixo.

Conecte-se ao seu servidor através de um cliente, provavelmente uma conexão SSH2. Se estiver utilizando o windows faça o download do putty, um cliente SSH simples e prático.

Após conectar-se, digite o comando para se tornar super-usuário, geralmente um dos dois abaixos:

su

ou

sudo su

Muito bem, agora digite a seguinte cadeia de comandos, um por linha, para criar um diretório /tmp virtual, com 1GB de espaço, sem permissão de execução e que será montado sempre que o servidor for inicializado.

cd /

dd if=/dev/zero of=/tmpdir bs=1024 count=1000000

mkfs.ext3 -F /tmpdir

mv /tmp /tmp.backup

mkdir /tmp

mount -o loop,noexec,nosuid,rw /tmpdir /tmp

chmod 0777 /tmp

if ! grep -qai tmpdir /etc/fstab; then

echo “/tmpdir /tmp ext3 loop,noexec,nosuid,rw 0 0″ >> /etc/fstab

fi

cat /etc/fstab

mount -a

### Explicações

pronto, você acabou de criar um diretório /tmp virtual. Vamos às explicações.

1. a linha dd if=/dev/zero… cria um drive lógico com 1 milhão de blocos de 1024 bytes. Se desejar um /tmp menor ou maior basta alterar o parâmetro count.

2. em seguida “formatamos” a nova unidade com sistema de arquivos ext3

3. por segurança movemos dados que estão em /tmp para /tmp.backup

4. cria-se o novo diretório /tmp, que sera o ponto de montagem de /tmpdir

5. montamos a unidade /tmpdir em /tmp, proibindo que sejam executados arquivos (noexec) e que o super-usuário faça qualquer coisa (nosuid).

6. o diretório recebe as permissões corretas (0777)

7. IMPORTANTÍSSIMO! Preste atenção para digitar dois sinais de maior (>>) e não apenas um. Agora é necessário adicionar isso ao arquivo fstab.

8. Vamos ver o arquivo fstab e ver se a montagem de tmpdir foi incluida com sucesso. Você deverá ver a linha /tmpdir /tmp ext3…, junto com várias outras, após o comando cat.

9. Tudo certo? Então vamos montar todos os volumes e ver se foi tudo bem.

É isso, tentei ser o mais “leigo” possível. Espero que ajude.

enviado por Marcos V.

Digg It! Digg It! Del.icio.us

2 Comentários »

  1. Pingback de Webcétera - Blog profissional - Problogging - Dicas e Conceitos — January 15, 2008 @ 9:54 am

    [...] Protegendo seu diretório /tmp [...]

  2. Pingback de Webcétera - Blog profissional - Problogging - Dicas e Conceitos — January 22, 2008 @ 9:59 am

    [...] of contents for seguranca de servidorProtegendo seu servidor dedicado ou semi-dedicado, introduçãoProtegendo seu diretório /tmpProtegendo [...]

 

Enviar Comentário