script firewall valdenilson

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 executável (chmod +x) (o seu já está). #3. Ele precisa ser lido pelo rc.local... para incluir ele na inicialização execute comando a seguir. #Mas atenção: só vai funcionar se você executar como root dentro da pasta /etc/init.d/ #Código: #update-rc.d [script] defaults #4. Para remover da inicialização, faça: #Código: #update-rc.d [script] remove iniciar(){ ####Colocar as funções que o firewall irá fazer echo "===========================================" echo "| :: SETANDO A CONFIGURAÇÃO DO IPTABLES :: |" echo "===========================================" # Limpa as regras iptables -F INPUT iptables -F OUTPUT iptables -F FORWARD echo "Limpando todas as regras .................[ OK ]" # Definindo a política default das cadeias iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT ACCEPT echo "Setando as regras padrão .................[ OK ]" # Configurando a proteção anti-spoofing rp_filter = Atribui o filtro de caminho reverso (reverse path - rp) para uma interface. O RP serve para validar que o atual endereço de origem usados por algusn pacotes estejam correlacionados com uma tabela de rotas e que pacotes com este IP de origem são supostamente respondidos através da mesma interface. for spoofing in /proc/sys/net/ipv4/conf/*/rp_filter; do echo "1" > $spoofing done

Upload: valdenilson2161

Post on 19-Jan-2016

10 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Script Firewall Valdenilson

#!/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 executável (chmod +x) (o seu já está).#3. Ele precisa ser lido pelo rc.local... para incluir ele na inicialização execute comando a seguir. #Mas atenção: só vai funcionar se você executar como root dentro da pasta /etc/init.d/#Código:#update-rc.d [script] defaults

#4. Para remover da inicialização, faça:#Código:#update-rc.d [script] remove

iniciar(){####Colocar as funções que o firewall irá fazer

echo "==========================================="echo "| :: SETANDO A CONFIGURAÇÃO DO IPTABLES :: |"echo "===========================================" # Limpa as regrasiptables -F INPUTiptables -F OUTPUTiptables -F FORWARDecho "Limpando todas as regras .................[ OK ]" # Definindo a política default das cadeiasiptables -P INPUT DROPiptables -P FORWARD DROPiptables -P OUTPUT ACCEPTecho "Setando as regras padrão .................[ OK ]" # Configurando a proteção anti-spoofingrp_filter = Atribui o filtro de caminho reverso (reverse path - rp) para uma interface. O RP serve para validar que o atual endereço de origem usados por algusn pacotes estejam correlacionados com uma tabela de rotas e que pacotes com este IP de origem são supostamente respondidos através da mesma interface.

for spoofing in /proc/sys/net/ipv4/conf/*/rp_filter; do echo "1" > $spoofingdoneecho "Setando a proteção anti-spoofing .........[ OK ]" # Impedindo que um atacante possa maliciosamente alterar alguma rotaaccept_redirects = Esta variável conta ao kernel quando ele deve aceitar ICMP Redirects ou não. ICMP Redirects são usados para contar a um host que existe um caminho melhor para enviar pacotes para um específico host ou rede. Valor defaul (1).echo 0 > /proc/sys/net/ipv4/conf/all/accept_redirectsecho "Setando anti-redirecionamento ............[ OK ]"

Page 2: Script Firewall Valdenilson

pacote vai percorrer (roteadores) até seu destino. Junto com spoof, isso se torna muito perigoso.#accept_source_route=Esta variável conta ao kernel se ele permite pacotes roteados pela origem. Valor default (1).

echo 0 > /proc/sys/net/ipv4/conf/all/accept_source_routeecho "Setando anti_source_route.................[ OK ]" # Proteção contra responses bogusecho 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responsesecho "Setando anti-bogus_response ..............[ OK ]" # Proteção contra ataques de syn flood (inicio da conexão TCP). Tenta conter ataques de DoS.tcp_syncookies = Proteção contra inudação SYN, permite um servidor quedas de conexões quando a fila SYN encheecho 1 > /proc/sys/net/ipv4/tcp_syncookiesecho "Setando proteção 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 máquina entre dois ou mais segmentos de rede, permitindo a livre passagem de pacotes entre estes sempre que for necessário., para habilitar devemos mudar para 1.

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

# Carregando os modulos do iptablesmodprobe ip_tablesmodprobe iptable_filtermodprobe iptable_manglemodprobe iptable_natmodprobe ipt_MASQUERADEecho "Carregando módulos do iptables ...........[ OK ]"

# Agora, vamos definir o que pode passar e o que não pode # Cadeia de entrada# LOCALHOST - ACEITA TODOS OS PACOTESiptables -A INPUT -i lo -j ACCEPT

# Abre para a faixa de endereços 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

Page 3: Script Firewall Valdenilson

# Impede a abertura de novas conexões, efetivamente bloqueando o acesso externo ao seu servidor, com exceção das portas e faixas de endereços manualmente especificadas anteriormente.iptables -A INPUT -p tcp --syn -j DROP

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

# No iptables, temos de dizer quais sockets são validos em uma conexãoiptables -A INPUT -m state --state ESTABLISHED,RELATED,NEW -j ACCEPTecho "Setando regras para INPUT ................[ OK ]" ################################# Cadeia de reenvio (FORWARD). # Primeiro, ativar o mascaramento (nat).iptables -t nat -F POSTROUTINGiptables -t nat -A POSTROUTING -o eth0 -j MASQUERADEecho "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 LOCALiptables -A FORWARD -i eth0 -p tcp --dport 3128 -j ACCEPT # PORTA 53 - ACEITA PARA A REDE LOCALiptables -A FORWARD -i eth0 -p udp --dport 53 -j ACCEPT # PORTA 110 - ACEITA PARA A REDE LOCALiptables -A FORWARD -i eth0 -p tcp --dport 110 -j ACCEPT # PORTA 25 - ACEITA PARA A REDE LOCALiptables -A FORWARD -i eth0 -p tcp --dport 25 -j ACCEPT # PORTA 21 - ACEITA PARA A REDE LOCALiptables -A FORWARD -i eth0 -p tcp --dport 21 -j ACCEPT # No iptables, temos de dizer quais sockets são válidos em uma conexãoiptables -A FORWARD -m state --state ESTABLISHED,RELATED,NEW -j ACCEPTecho "Setando regras para FOWARD ...............[ OK ]"}Parar() {iptables -F iptables -P INPUT ACCEPT iptables -P OUTPUT ACCEPT echo "Regras de firewall desativadas"

Page 4: Script Firewall Valdenilson

}case "$1" in "start") iniciar ;; "stop") parar ;; "restart") parar; iniciar ;; *) echo "Use os parâmetros start ou stop"esac