Enviado em 02/10/2013 - 11:08h
Bom Dia Pessoal, estou com uma dúvida na verdade fiquei até tarde tentando criar algo assim, mas como não tenho experiência com iptables não deu muito certo então vim pedir a ajuda de vocês, espero que possam me ajudar se possível.
#!/bin/bash
#--------------------------- CONFIGURACOES ---------------------------
ArquivoListaIP=ips-teste.txt
LiberarPortas=( 80 7777 )
PortaSSH=22
#----------------------------------------------------------------------
echo "Iniciando configuração..."
#Limpar iptables ------------------------------------------------------
iptables -F
#Fechando todas conexões ----------------------------------------------
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP
# Liberando acesso SSH ------------------------------------------------
echo "Liberando o SSH"
iptables -I INPUT -p tcp --dport $PortaSSH -i venet0 -m state --state NEW -m recent --update --seconds 60 --hitcount 4 -j DROP
iptables -A INPUT -p tcp --dport $PortaSSH -j ACCEPT
iptables -A INPUT -p udp --dport $PortaSSH -j ACCEPT
#Libera conexões estabilecidas ----------------------------------------
echo "Liberando conexoes estabelecidas..."
#iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
#iptables -A FORWARD -m state --state RELATED,ESTABLISHED,NEW -j ACCEPT
#iptables -A OUTPUT -m state --state RELATED,ESTABLISHED,NEW -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
# Liberando portas ----------------------------------------------------
# Abrir portas TCP
BADIPS=$(egrep -v "^#|^$" $ArquivoListaIP)
for IP in $BADIPS
do
iptables -A INPUT -p tcp -m iprange --src-range $IP -m multiport --dports $LiberarPortas -j ACCEPT
echo " > Range ($IP) Liberada com sucesso!"
done
echo "> Abrindo portas UDP"
/sbin/iptables -A INPUT -p udp -m multiport --dports $LiberarPortas -j ACCEPT
# Bloqueando qualquer outro acesso as portas --------------------------
for port in ${LiberarPortas[@]}
do
echo "> Bloqueando outros acessos a porta $port"
iptables -A INPUT -i eth0 -p tcp --dport $port -j DROP
done