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
Há diversas formas de se configurar um firewall, vou começar pela mais básica delas. Básica não por ser a mais fácil, mas porque quase todos os servidores linux fornecidos em datacenter via colocation ou leasing ou aluguel possuem instalados um programa chamado iptables. Sua função é permitir ou derrubar pacotes de dados e evitar comunicação indesejada.
O script abaixo não deve ser utilizado da forma como está, é necessário verificar linha por linha e saber se atende às suas necessidades.
Basicamente libera http,https, pop3, pop3s, ssh, smtp, imap, ftp, mysql e recusa o resto.
Como sempre, utilize por sua conta e risco.
Copie as linhas abaixo, envie para o seu servidor, utilize algum nome obvio como ‘iptables.sh’, torne-se super usuario (’su’ ou ’sudo su’) e rode com:
# sh iptables.sh
se deu tudo certo seu servidor está menos vulnerável. E, sim, eu colocarei uma configuração para APF também, aguardem.
#!/bin/sh
# endereco IP do seu servidor
SERVER_IP=xxx.xxx.xxx.xxx
# se voce tiver uma conexao com IP dedicado, pode adiciona-lo aqui.
ADMIN_IP=yyy.yyy.yyy.yyy
# interface a ser configurado com o firewall
$INTERFACE=eth0
IPTABLES=’/sbin/iptables’
SERVICE=’/sbin/service’
# Configurações padrão (-P), caso não exista uma regra que se aplique
# especificamente &aagrave; a uma situação, tenta utilizar
# a regra mais genérica possível. O padrão utilizado é DROP, ou seja,
# derruba tudo o que não está autorizado.
$IPTABLES -P INPUT ACCEPT
$IPTABLES -P FORWARD DROP
$IPTABLES -P OUTPUT ACCEPT
# Flush (limpa) (-F) todas as regras
$IPTABLES -F INPUT
$IPTABLES -F FORWARD
$IPTABLES -F OUTPUT
# Comunicacao interna ao firewall
$IPTABLES -A INPUT -i $INTERFACE -m state –state ESTABLISHED,RELATED -j ACCEPT
# Derruba todas as conexoes vindas da rede publica que tentam
# se passar por enderecos internos
$IPTABLES -A INPUT -i $INTERFACE -s $SERVER_IP/32 -j DROP
$IPTABLES -A INPUT -i $INTERFACE -s 192.168.0.0/24 -j DROP
$IPTABLES -A INPUT -i $INTERFACE -s 127.0.0.0/8 -j DROP
# Aceita pacotes para o protocolo SMTP (mail)
$IPTABLES -A INPUT -p tcp -s 0/0 -d 127.0.0.0/8 –destination-port smtp –syn -j ACCEPT
$IPTABLES -A INPUT -p tcp -s 0/0 -d $SERVER_IP/32 –destination-port smtp –syn -j ACCEPT
$IPTABLES -A INPUT -p tcp -s 0/0 -d $SERVER_IP/32 –destination-port smtps –syn -j ACCEPT
# Aceita HTTP, HTTPS, POP3, POP3S
$IPTABLES -A INPUT -p tcp -s 0/0 -d 0/0 –destination-port http –syn -j ACCEPT
$IPTABLES -A INPUT -p tcp -s 0/0 -d 0/0 –destination-port https –syn -j ACCEPT
$IPTABLES -A INPUT -p tcp -s 0/0 -d 0/0 –destination-port pop3 –syn -j ACCEPT
$IPTABLES -A INPUT -p tcp -s 0/0 -d 0/0 –destination-port pop3s –syn -j ACCEPT
$IPTABLES -A INPUT -p tcp -s 0/0 -d 0/0 –destination-port poppassd –syn -j ACC EPT
# IMAP
$IPTABLES -A INPUT -p tcp -s 0/0 -d 0/0 –destination-port imap –syn -j ACCEPT
$IPTABLES -A INPUT -p tcp -s 0/0 -d 0/0 –destination-port imaps –syn -j ACCEPT
# ATENCAO, se voce utiliza um painel de controle
# DEVE liberar sua porta aqui. Listei uma liberacao para o Plesk.
# Verifique nos dados fornecidos pelo datacenter qual o seu painel e
# qual(is) a(s) porta(s) utilizadas e LIBERE-AS aqui.
# Se utiliza CPanel há no faq deles uma relacao de todas as portas.
# Plesk
$IPTABLES -A INPUT -p tcp -s 0/0 -d 0/0 –destination-port 8443 –syn -j ACCEPT
# SSH
# Em mundo ideal voce possui um IP fixo em sua casa ou escritorio e deve liberar apenas
# esse IP. Na pratica isso é muito raro, mas se for esse o seu caso, retire o comentario,
# o simbolo de “#”, da linha abaixo. Nao se esqueca de colocar o endereco da sua conexao
# nos parametros do comeco do script.
#$IPTABLES -A INPUT -p tcp -s $ADMIN_IP/32 -d $SERVER_IP/32 –destination-port s sh –syn -j ACCEPT
# DNS
$IPTABLES -A INPUT -p udp -s 0/0 -d 0/0 –destination-port domain -j ACCEPT
$IPTABLES -A INPUT -p tcp -s 0/0 -d 0/0 –destination-port domain -j ACCEPT
# For FTP server, restricted to specific local hosts (and see /etc/xinetd.conf):
# $IPTABLES -A INPUT -p tcp -s 0/0 -d 0/0 –destination-port ftp-data –syn -j A CCEPT
$IPTABLES -A INPUT -p tcp -s 0/0 -d 0/0 –destination-port ftp –syn -j ACCEPT
# Talvez voce precise configurar as portas que seu servico de FTP utiliza. Se não sabe
# do que estou falando, deixe a linha abaixo comentada.
#$IPTABLES -A INPUT -p tcp -s 0/0 -d 0/0 –destination-port 32000:65534 –syn -j ACCEPT
# Otras cositas mas, se nao sabe o que sao, deixe comentadas
# $IPTABLES -A INPUT -p tcp -s 0/0 -d 0/0 –destination-port ipp –syn -j ACCEPT
# $IPTABLES -A INPUT -p tcp -s 0/0 -d 0/0 –destination-port rndc –syn -j ACCEP T
# $IPTABLES -A INPUT -p tcp -s 0/0 -d 0/0 –destination-port sunrpc –syn -j ACC EPT
# MySQL
# ATENCAO, permite que usuarios externos “tentem” se conectar ao seu mysql
$IPTABLES -A INPUT -p tcp -s 0/0 -d 0/0 –destination-port mysql –syn -j ACCEPT
#blocks
# se voce quiser bloquear algum endereco especifico, coloque na linha abaixo
# e retire o comentario
$IPTABLES -A INPUT -s xyz.xyz.xyz.xyz/32 -d 0/0 -p tcp –syn -j DROP
# Se nao estiver em algum dos casos acime, recuse a conexao
$IPTABLES -A INPUT -s 0/0 -d 0/0 -p udp -j DROP
$IPTABLES -A INPUT -s 0/0 -d 0/0 -p tcp –syn -j DROP
# Salva a configuracao
$SERVICE iptables save
# Reinicializa o servico
$SERVICE iptables restart
$SERVICE iptables status






Nenhum comentário »
Nenhum comentário.
Enviar Comentário