debian (rc.firewall)
Categoria: Segurança
Software: debian
[ Hits: 23.194 ]
Por: Ederson
rc.firewall com siafi e vpn
#Ai galera esse e para administradores de quarteis com siafi e vpn #!/bin/bash firewall_start() { echo "===============================================" echo "| :: SETANDO A CONFIGURACAO DO IPTABLES :: |" echo "===============================================" ipt="/usr/local/sbin/iptables" ### Passo 1: Limpando as regras ### $ipt -F INPUT $ipt -F OUTPUT $ipt -F FORWARD echo "Limpando todas as regras .................[ OK ]" # Definindo a Politica Default das Cadeias $ipt -P INPUT DROP $ipt -P FORWARD DROP $ipt -P OUTPUT ACCEPT echo "Setando as regras padrao .................[ OK ]" ### Passo 2: Desabilitar o trafego IP entre as placas de rede ### echo "0" > /proc/sys/net/ipv4/ip_forward echo "Setando ip_foward ........................[ OK ]" # Portas e Servicos ftp=20:21 ftp1=20 ftp2=21 smtp=25 dns=53 dhcp1=67 dhcp2=68 http=80 pop=110 ntp=123 snmp=161:162 https=443 Paltas=1024:65535 squid=3128 rip=520 vpn1=500 vpn2=4500 siafi1=8999 siafi2=23000 redecmdo1=465 redecmdo2=995 fz1=990 fz2=9091 fz3=9121 # Interfaces IADSL=eth0 ILAN=eth1 ILocal=lo # Redes Internas LAN=192.168.1.0/255.255.255.0 ADSL=10.1.1.5/255.0.0.0 # Redes Externas Siafi=161.148.40.0/255.255.255.0 Vpn=200.199.248.60 Redecmdo=200.252.148.144 Avg1=207.40.194.0/255.255.255.0 Avg2=193.86.103.0/255.255.255.0 Internet=0.0.0.0/0.0.0.0 # Configurando a Protecao anti-spoofing for spoofing in /proc/sys/net/ipv4/conf/*/rp_filter; do echo "1" > $spoofing done echo "Setando a protecao anti-spoofing .........[ OK ]" # Impedimos que um atacante possa maliciosamente alterar alguma rota 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) ate seu destino. Junto com spoof, isso se torna muito perigoso. echo 0 > /proc/sys/net/ipv4/conf/all/accept_source_route echo "Setando anti_source_route.................[ OK ]" # Protecao contra responses bogus echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses echo "Setando anti-bogus_response ..............[ OK ]" # Protecao contra ataques de syn flood (inicio da conexao TCP). Tenta conter ataques de DoS. echo 1 > /proc/sys/net/ipv4/tcp_syncookies echo "Setando protecao anti_synflood ...........[ OK ]" # Protecao contra port scanners ocultos $ipt -A INPUT -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT $ipt -A INPUT -s 0.0.0.0/0 -p icmp -j DROP # Bloqueando tracertroute $ipt -A INPUT -p udp -s 0/0 -i $IADSL --dport 33435:33525 -j DROP #Protecoes contra ataques $ipt -A INPUT -m state --state INVALID -j DROP $ipt -A OUTPUT -p tcp ! --tcp-flags SYN,RST,ACK SYN -m state --state NEW -j DROP #Ping da morte $ipt -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT #Protecao contra Syn-floods $ipt -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT ### Passo 3: Carregando os modulos do iptables ### modprobe ip_tables modprobe iptable_filter modprobe iptable_mangle modprobe iptable_nat modprobe ipt_MASQUERADE modprobe ipt_layer7 modprobe ip_nat_ftp modprobe ip_conntrack_ftp modprobe ip_conntrack_irc echo "Carregando modulos do iptables ...........[ OK ]" ### Passo 4: Agora, vamos definir o que pode passar e o que nao ### # Cadeia de Entrada # LOCALHOST - ACEITA TODOS OS PACOTES $ipt -A INPUT -i lo -j ACCEPT # PORTA $http - ACEITA PARA A REDE LOCAL $ipt -A INPUT -i $ILAN -p tcp --dport $http -j ACCEPT # PORTA 22 - ACEITA PARA A REDE LOCAL $ipt -A INPUT -i $ILAN -p tcp --dport 22 -j ACCEPT # No $ipt, temos de dizer quais sockets sao validos em uma conexao $ipt -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). $ipt -t nat -F POSTROUTING $ipt -t nat -A POSTROUTING -o $IADSL -j MASQUERADE echo "Ativando mascaramento de IP ..............[ OK ]" ## Redireciona para SQUID $ipt -t nat -A PREROUTING -i $ILAN -p tcp --dport $http -j REDIRECT --to-port $squid $ipt -t nat -A PREROUTING -i $ILAN -p tcp --dport $https -j REDIRECT --to-port $squid # Agora dizemos quem e o que podem acessar externamente # No $ipt, o controle do acesso a rede externa e feito na cadeia "FORWARD" # Abre para a interface de loopback. $ipt -A INPUT -p tcp --syn -s 127.0.0.1/255.0.0.0 -j ACCEPT # Abre para uma faixa de enderecos da rede local $ipt -A INPUT -p tcp --syn -s $LAN -j ACCEPT # ACEITA TODOS OS PACOTES #$ipt -A FORWARD -s 192.168.1.4 -j ACCEPT $ipt -A FORWARD -s 192.168.1.5 -j ACCEPT $ipt -A FORWARD -s 192.168.1.55 -j ACCEPT $ipt -A FORWARD -s 192.168.1.19 -j ACCEPT $ipt -A FORWARD -s 192.168.1.6 -j ACCEPT # SIAFI $ipt -A FORWARD -s $LAN -d $Siafi -p tcp -m multiport --destination-port $siafi1,$siafi2 -j ACCEPT $ipt -A FORWARD -i $IADSL -s $Siafi -d $LAN -p tcp -m multiport --source-port $siafi1,$siafi2 -m state --state ESTABLISHED -j ACCEPT $ipt -A FORWARD -p tcp --dport 23000 -j ACCEPT $ipt -A FORWARD -p tcp --dport 8999 -j ACCEPT $ipt -A FORWARD -s $LAN -d $Siafi -j ACCEPT # VPN $ipt -A FORWARD -s $LAN -d $Vpn -p udp --destination-port $vpn1 -j ACCEPT $ipt -A FORWARD -s $LAN -d $Vpn -p udp --destination-port $vpn2 -j ACCEPT $ipt -A FORWARD -s $Vpn -d $LAN -p udp --destination-port $vpn1 -j ACCEPT $ipt -A FORWARD -s $Vpn -d $LAN -p udp --destination-port $vpn2 -j ACCEPT # FileZilla $ipt -A INPUT -i $ILAN -p tcp --dport $fz1 -j ACCEPT $ipt -A FORWARD -p tcp --dport $fz1 -j ACCEPT $ipt -A INPUT -i $ILAN -p tcp --dport $fz2 -j ACCEPT $ipt -A FORWARD -p tcp --dport $fz2 -j ACCEPT $ipt -A INPUT -i $ILAN -p tcp --dport $fz3 -j ACCEPT $ipt -A FORWARD -p tcp --dport $fz3 -j ACCEPT # AVG $ipt -A FORWARD -s $LAN -d $Avg1 -p tcp --destination-port $http -j ACCEPT $ipt -A FORWARD -i $IADSL -s $Avg1 -d $LAN -p tcp --source-port $http -m state --state ESTABLISHED -j ACCEPT $ipt -A FORWARD -s $LAN -d $Avg2 -p tcp --destination-port $http -j ACCEPT $ipt -A FORWARD -i $IADSL -s $Avg2 -d $LAN -p tcp --source-port $http -m state --state ESTABLISHED -j ACCEPT ##### INICIO REGRAS PARA LAYER7 ######## # Protocols # MSN Messenger $ipt -A FORWARD -m layer7 --l7proto msnmessenger -j DROP $ipt -A FORWARD -m layer7 --l7proto msn-filetransfer -j DROP # Bittorrent - P2P filesharing $ipt -A FORWARD -m layer7 --l7proto bittorrent -j DROP # Gnutella - P2P filesharing $ipt -A FORWARD -m layer7 --l7proto gnutella -j DROP # Skype to phone $ipt -A FORWARD -m layer7 --l7proto skypeout -j DROP $ipt -A FORWARD -m layer7 --l7proto skypetoskype -j DROP # eDonkey2000 - P2P filesharing $ipt -A FORWARD -m layer7 --l7proto edonkey -j DROP # Yahoo messenger $ipt -A FORWARD -m layer7 --l7proto yahoo -j DROP # Ventrilo - VoIP $ipt -A FORWARD -m layer7 --l7proto ventrilo -j DROP # FastTrack - P2P filesharing $ipt -A FORWARD -m layer7 --l7proto fasttrack -j DROP # Chikka - SMS $ipt -A FORWARD -m layer7 --l7proto chikka -j DROP #### FIM REGRAS LAYER7 #### #### GERANDO LOGS DE ACESSO #### # Gerando logs do msn $ipt -A FORWARD -m layer7 --l7proto msnmessenger -j LOG --log-prefix "msn : " # Gerando logs de emule $ipt -A FORWARD -m layer7 --l7proto edonkey -j LOG --log-prefix "edonkey : " $ipt -A FORWARD -m layer7 --l7proto gnutella -j LOG --log-prefix "gnutella : " #### FIM LOGS #### # Bloqueando Acesso MSN $ipt -A FORWARD -p tcp --dport 1863 -j DROP $ipt -A OUTPUT -p tcp --dport 1863 -j DROP # Ignora pings echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_all # PORTA 3128 - ACEITA PARA A REDE LOCAL $ipt -A FORWARD -i $ILAN -p tcp --dport $squid -j ACCEPT # PORTA 53 - ACEITA PARA A REDE LOCAL $ipt -A FORWARD -i $ILAN -p udp --dport 53 -j ACCEPT # PORTA 110 - ACEITA PARA A REDE LOCAL $ipt -A FORWARD -i $ILAN -p tcp --dport 110 -j ACCEPT # PORTA 25 - ACEITA PARA A REDE LOCAL $ipt -A FORWARD -i $ILAN -p tcp --dport 25 -j ACCEPT # PORTA 443 - ACEITA PARA A REDE LOCAL $ipt -A FORWARD -i $ILAN -p tcp --dport $https -j ACCEPT # PORTA 21 - ACEITA PARA A REDE LOCAL $ipt -A FORWARD -i $ILAN -p tcp --dport 21 -j ACCEPT # No $ipt, temos de dizer quais sockets sao validos em uma conexao $ipt -A FORWARD -m state --state ESTABLISHED,RELATED,NEW -j ACCEPT echo "Setando regras para FOWARD ...............[ OK ]" # Apesar do padrao do forward ser bloqueio. Aqui a regra eh duplicada para gerar log, # ou seja, tudo o que eh bloqueado por default no forward eh logado aqui $ipt -A FORWARD -m limit --limit 2/m -j LOG --log-prefix "FORWARD: Bloqueio Padrao " $ipt -A FORWARD -j DROP # Finalmente: Habilitando o trafego IP, entre as Interfaces de rede echo "1" > /proc/sys/net/ipv4/ip_forward # Ignora qualquer pacote de entrada, vindo de qualquer endereco, a menos # que especificado o contrario acima, Bloqueia tudo. $ipt -A INPUT -p tcp --syn -j DROP echo "Setando ip_foward: ON ....................[ OK ]" echo "Firewall configurado com sucesso .........[ OK ]" echo } firewall_restart() { firewall_start } firewall_stop() { echo "===========================================" echo "| :: DESLIGANDO FIREWALL :: |" echo "===========================================" # Limpa as regras $ipt -F INPUT $ipt -F OUTPUT $ipt -F FORWARD echo "Limpando todas as regras .................[ OK ]" } case "$1" in 'start') firewall_start ;; 'stop') firewall_stop ;; 'restart') firewall_restart ;; *) firewall_start esac
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Como renomear arquivos de letras maiúsculas para minúsculas
Imprimindo no formato livreto no Linux
Vim - incrementando números em substituição
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
SysAdmin ou DevOps: Qual curso inicial pra essa área? (0)
Melhores Práticas de Nomenclatura: Pastas, Arquivos e Código (3)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta