Vous êtes sur la page 1sur 4

#!

/bin/bash
## Pra incluir seu script no boot, seguinte:
#1. Ele deve estar em /etc/init.d/ (o seu j esta).
#2. Ele precisa ser executvel (chmod +x) (o seu j est).
#3. Ele precisa ser lido pelo rc.local... para incluir ele na inicializao execute comando a seguir.
#Mas ateno: s vai funcionar se voc executar como root dentro da pasta /etc/init.d/
#Cdigo:
#update-rc.d [script] defaults
#4. Para remover da inicializao, faa:
#Cdigo:
#update-rc.d [script] remove

iniciar(){
####Colocar as funes que o firewall ir fazer
echo "==========================================="
echo "| :: SETANDO A CONFIGURAO DO IPTABLES :: |"
echo "==========================================="

# Limpa as regras
iptables -F INPUT
iptables -F OUTPUT
iptables -F FORWARD
echo "Limpando todas as regras .................[ OK ]"

# Definindo a poltica default das cadeias
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
echo "Setando as regras padro .................[ OK ]"

# Configurando a proteo anti-spoofing
rp_filter = Atribui o filtro de caminho reverso (reverse path - rp)
para uma interface. O RP serve para validar que o atual endereo de
origem usados por algusn pacotes estejam correlacionados com uma
tabela de rotas e que pacotes com este IP de origem so supostamente
respondidos atravs da mesma interface.

for spoofing in /proc/sys/net/ipv4/conf/*/rp_filter; do
echo "1" > $spoofing
done
echo "Setando a proteo anti-spoofing .........[ OK ]"

# Impedindo que um atacante possa maliciosamente alterar alguma rota
accept_redirects = Esta varivel conta ao kernel quando ele deve
aceitar ICMP Redirects ou no. ICMP Redirects so usados para contar a
um host que existe um caminho melhor para enviar pacotes para um
especfico host ou rede. Valor defaul (1).
echo 0 > /proc/sys/net/ipv4/conf/all/accept_redirects
echo "Setando anti-redirecionamento ............[ OK ]"

# Utilizado em diversos ataques, isso possibilita que o atacante
determine o "caminho" que seu pacote vai percorrer (roteadores) at
seu destino. Junto com spoof, isso se torna muito perigoso.
#accept_source_route=Esta varivel conta ao kernel se ele permite
pacotes roteados pela origem. Valor default (1).

echo 0 > /proc/sys/net/ipv4/conf/all/accept_source_route
echo "Setando anti_source_route.................[ OK ]"

# Proteo contra responses bogus
echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
echo "Setando anti-bogus_response ..............[ OK ]"

# Proteo contra ataques de syn flood (inicio da conexo TCP). Tenta
conter ataques de DoS.
tcp_syncookies = Proteo contra inudao SYN, permite um servidor
quedas de conexes quando a fila SYN enche
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
echo "Setando proteo anti_synflood ...........[ OK ]"

# Finalmente: Habilitando o trafego IP, entre as Interfaces de rede
#ip_forward O IP FORWARD um tipo de roteamento. estabelecido
quando colocamos uma mquina entre dois ou mais segmentos de rede,
permitindo a livre passagem de pacotes entre estes sempre que for
necessrio., para habilitar devemos mudar para 1.

echo "1" > /proc/sys/net/ipv4/ip_forward
echo "Setando ip_foward: ON ....................[ OK ]"
echo "Firewall configurado com sucesso .........[ OK ]"

# Carregando os modulos do iptables
modprobe ip_tables
modprobe iptable_filter
modprobe iptable_mangle
modprobe iptable_nat
modprobe ipt_MASQUERADE
echo "Carregando mdulos do iptables ...........[ OK ]"


# Agora, vamos definir o que pode passar e o que no pode

# Cadeia de entrada
# LOCALHOST - ACEITA TODOS OS PACOTES
iptables -A INPUT -i lo -j ACCEPT

# Abre para a faixa de endereos da rede local:
iptables -A INPUT -s 192.168.1.0/255.255.255.0 -j ACCEPT

# Ignora pings:
iptables -A INPUT -p icmp --icmp-type echo-request -j DROP



# Impede a abertura de novas conexes, efetivamente bloqueando o
acesso externo ao seu servidor, com exceo das portas e faixas de
endereos manualmente especificadas anteriormente.
iptables -A INPUT -p tcp --syn -j DROP

# PORTA 80 - ACEITA PARA A REDE LOCAL
iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT

# PORTA 22 - ACEITA PARA A REDE LOCAL
iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT



# No iptables, temos de dizer quais sockets so validos em uma conexo
iptables -A INPUT -m state --state ESTABLISHED,RELATED,NEW -j ACCEPT
echo "Setando regras para INPUT ................[ OK ]"

################################
# Cadeia de reenvio (FORWARD).

# Primeiro, ativar o mascaramento (nat).
iptables -t nat -F POSTROUTING
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
echo "Ativando mascaramento de IP ..............[ OK ]"

# Agora dizemos quem e o que pode acessar externamente
# No iptables, o controle do acesso a rede externa e feito na cadeia
"FORWARD"

# PORTA 3128 - ACEITA PARA A REDE LOCAL
iptables -A FORWARD -i eth0 -p tcp --dport 3128 -j ACCEPT

# PORTA 53 - ACEITA PARA A REDE LOCAL
iptables -A FORWARD -i eth0 -p udp --dport 53 -j ACCEPT

# PORTA 110 - ACEITA PARA A REDE LOCAL
iptables -A FORWARD -i eth0 -p tcp --dport 110 -j ACCEPT

# PORTA 25 - ACEITA PARA A REDE LOCAL
iptables -A FORWARD -i eth0 -p tcp --dport 25 -j ACCEPT

# PORTA 21 - ACEITA PARA A REDE LOCAL
iptables -A FORWARD -i eth0 -p tcp --dport 21 -j ACCEPT

# No iptables, temos de dizer quais sockets so vlidos em uma conexo
iptables -A FORWARD -m state --state ESTABLISHED,RELATED,NEW -j ACCEPT
echo "Setando regras para FOWARD ...............[ OK ]"
}
Parar() {
iptables -F
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
echo "Regras de firewall desativadas"
}
case "$1" in
"start") iniciar ;;
"stop") parar ;;
"restart") parar; iniciar ;;
*) echo "Use os parmetros start ou stop"
esac

Vous aimerez peut-être aussi