edpes
(usa Ubuntu)
Enviado em 17/11/2015 - 15:24h
Este arquivo você salva com a extenção .sh tipo firewall.sh
salva o arquivo em etc/init.d/firewall.sh
para gravar no diretório init.d precisa ser root, para isso abra o gedit ou seu editor de texto preferido como superusuário, tipo $ sudo gedit.
cole o script abaixo e salva no /etc/init.d/rc2.d
e preciso dar permissão para ser executado, use o comando
sudo chmod +x /etc/firewall.sh
abra o arquivo
/etc/rc2.d/
e insira a linha abaixo.
S02firewall.sh
salve e reinicie o PC.
depois no terminal digite
$ sudo iptables -L
pra ver se o firewall esta configurando as regras.
abçs.
#!/bin/bash
#espero que te ajude abraços
#Edson Pessotti --> Tecnólogo/programador/graduado em segurança da informação.
# Variaveis Necessarias
IPTABLES=`which iptables`
LAN="200.201.202.0/24"
IFWAN="eth0"
IFLAN="eth1"
ANY="0/0"
# Filtrando pacotes ICMP
echo -n "Filtrando pacotes constra ICMP Broadcast (Enchurrada de pacotes ICMP) "
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
echo -n "Protegendo o Servidor contra o Ping da Morte... "
$IPTABLES -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
$IPTABLES -A INPUT -p icmp -j DROP
# Bloqueando Tracerouters
echo -n "Bloqueando Tracerouters... "
$IPTABLES -A INPUT -p udp -s $ANY -i $LAN --dport 33435:33524 -j DROP
# Bloqueia pacotes tcp Malformados
echo -n "Bloquando pacotes tcp Malformados.... "
$IPTABLES -A FORWARD -p tcp ! --syn -m state --state NEW -j DROP
$IPTABLES -A INPUT -m state --state INVALID -j DROP
$IPTABLES -A OUTPUT -m state --state INVALID -j DROP
$IPTABLES -A FORWARD -m state --state INVALID -j DROP
# Filtro das conexoes extabelecidas
echo -n "Permitindo e Filtrando Conexoes Estabelicidas... "
$IPTABLES -t filter -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -t filter -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -t filter -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
# Protecao contra Synflood
echo -n "Protegendo a rede contra SynFlood... "
# Devido a falhas de segurança encontradas neste modulo, ele deve ser desativado
echo 0 > /proc/sys/net/ipv4/tcp_syncookies
# Solucao substituta ao modulo acima
$IPTABLES -N syn-flood
$IPTABLES -A INPUT -i $IFWAN -p tcp --syn -j syn-flood
$IPTABLES -A syn-flood -m limit --limit 1/s --limit-burst 4 -j RETURN
$IPTABLES -A syn-flood -j DROP
$IPTABLES -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT
# Protecao contra falhas de seguranca dos servicos do X Window
echo -n "Protegendo a rede contra vulnerabilidade no X Window... "
$IPTABLES -A INPUT -p tcp -s 0.0.0.0/0 -d 0.0.0.0/0 --dport 6000:6063 -j DROP
# Protecao contra port-scanners ocultos
echo -n "Protegendo a Rede contra Port-Scanners Ocultos... "
$IPTABLES -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
$IPTABLES -A SCANNER -j DROP
$IPTABLES -A INPUT -p tcp --tcp-flags ALL FIN,URG,PSH -i $IFWAN -j DROP
$IPTABLES -A INPUT -p tcp --tcp-flags ALL NONE -i $IFWAN -j DROP
$IPTABLES -A INPUT -p tcp --tcp-flags ALL ALL -i $IFWAN -j DROP
$IPTABLES -A INPUT -p tcp --tcp-flags ALL FIN,SYN -i $IFWAN -j DROP
$IPTABLES -A INPUT -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -i $IFWAN -j DROP
$IPTABLES -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -i $IFWAN -j DROP
$IPTABLES -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -i $IFWAN -j DROP
$IPTABLES -A FORWARD --protocol tcp --tcp-flags ALL SYN,ACK -j DROP
# Protecao contra IP Spoofing
echo -n "Protegendo o Servidor contra IP Spoofing... "
$IPTABLES -A INPUT -s $LAN -i $IFWAN -j DROP
for i in /proc/sys/net/ipv4/conf/*/rp_filter; do
echo 1 > $i
done
# Protecao contra Ataques DoS
echo -n "Protegendo o servidor contra ataques DDoS... "
$IPTABLES -A INPUT -m state --state INVALID -j DROP
$IPTABLES -A OUTPUT -p tcp ! --tcp-flags SYN,RST,ACK SYN -m state --state NEW -j DROP
# Bloqueia Acessos RPC do Windows
echo -n "Bloqueando acessos aos Serviços RPC do Windows... "
$IPTABLES -t filter -A INPUT -p tcp -s $ANY -d $LAN --dport 530 -i $IFWAN -j DROP
$IPTABLES -t filter -A INPUT -p tcp -s $ANY -d $LAN --dport 135 -i $IFWAN -j DROP
# Bloqueia Acessos a NetBIOS
echo -n "Bloqueando Acessos a NetBIOS via Internet... "
$IPTABLES -t filter -A INPUT -p tcp -s $ANY -d $LAN --dport 137 -i $IFWAN -j DROP
$IPTABLES -t filter -A INPUT -p tcp -s $ANY -d $LAN --dport 139 -i $IFWAN -j DROP
# Protecao contra TRINOO
echo -n "Protecao Contra ataques TRINOO... "
$IPTABLES -N TRINOO
$IPTABLES -A TRINOO -j DROP
$IPTABLES -A INPUT -p tcp -i $IFWAN --dport 1524 -j TRINOO
$IPTABLES -A INPUT -p tcp -i $IFWAN --dport 27444 -j TRINOO
$IPTABLES -A INPUT -p tcp -i $IFWAN --dport 27665 -j TRINOO
$IPTABLES -A INPUT -p tcp -i $IFWAN --dport 31335 -j TRINOO
$IPTABLES -A INPUT -p tcp -i $IFWAN --dport 34555 -j TRINOO
$IPTABLES -A INPUT -p tcp -i $IFWAN --dport 35555 -j TRINOO
# Protecao contra Trojans
echo -n "Protegendo a Rede contra os Trojans mais conhecidos... "
$IPTABLES -N TROJAN
$IPTABLES -A TROJAN -j DROP
$IPTABLES -A INPUT -p tcp -i $IFWAN --dport 666 -j TROJAN
$IPTABLES -A INPUT -p tcp -i $IFWAN --dport 666 -j TROJAN
$IPTABLES -A INPUT -p tcp -i $IFWAN --dport 4000 -j TROJAN
$IPTABLES -A INPUT -p tcp -i $IFWAN --dport 6000 -j TROJAN
$IPTABLES -A INPUT -p tcp -i $IFWAN --dport 6006 -j TROJAN
$IPTABLES -A INPUT -p tcp -i $IFWAN --dport 16660 -j TROJAN
# Protecao contra BO
echo -n "Bloqueando Back Orifice (BO) "
$IPTABLES -A INPUT -p tcp -i $IFWAN --dport 31337 -j DROP
$IPTABLES -A INPUT -p udp -i $IFWAN --dport 31337 -j DROP
# Bloqueio contra NetBus
$IPTABLES -A INPUT -p tcp --dport 12345:12346 -j DROP
$IPTABLES -A INPUT -p udp --dport 12345:12346 -j DROP
# Verifica pacotes fragmentados e os descarta...
echo -n "Descartando pacotes fragmentados... "
$IPTABLES -N VALID_CHECK
$IPTABLES -A VALID_CHECK -p tcp --tcp-flags ALL FIN,URG,PSH -j DROP
$IPTABLES -A VALID_CHECK -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j DROP
$IPTABLES -A VALID_CHECK -p tcp --tcp-flags ALL ALL -j DROP
$IPTABLES -A VALID_CHECK -p tcp --tcp-flags ALL FIN -j DROP
$IPTABLES -A VALID_CHECK -p tcp --tcp-flags SYN,RST SYN,RST -j DROP
$IPTABLES -A VALID_CHECK -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP
$IPTABLES -A VALID_CHECK -p tcp --tcp-flags ALL NONE -j DROP
# Seguranca no Nivel do Kernel
echo -n "Aplicando Seguranca no Nivel do Kernel... "
if [ -e /proc/sys/net/ipv4/tcp_syncookies ]
then
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
fi
if [ -e /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses ]
then
echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
fi
if [ -e /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts ]
then
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
fi
if [ -e /proc/sys/net/ipv4/ip_dynaddr ]
then
echo 1 > /proc/sys/net/ipv4/ip_dynaddr
fi
# Bloqueia qualquer coisa nao especificada acima
echo -n "Mascarando toda a Rede... "
$IPTABLES -t nat -A POSTROUTING -j MASQUERADE
echo -n "Bloqueando Tudo o que nao foi especificado... "
$IPTABLES -A FORWARD -s $ANY -d $LAN -j DROP
$IPTABLES -A INPUT -p tcp --syn -j DROP