Protegendo seu diretório /tmp

Outros artigos da série seguranca de servidor
Protegendo seu servidor dedicado ou semi-dedicado, introdução
Protegendo seu diretório /tmp
Protegendo executáveis
configurando um firewall no seu servidor dedicado com iptables
Parte 1 da série sobre segurança em unix.

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.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s