debian (rc.firewall)
Categoria: Segurança
Software: debian
[ Hits: 23.129 ]
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
Agora temos uma assistente virtual no fórum!!! (247)
Manutenção de sistemas Linux Debian e derivados com apt-get, apt, aptitude e dpkg
Melhorando o tempo de boot do Fedora e outras distribuições
Como instalar as extensões Dash To Dock e Hide Top Bar no Gnome 45/46
Como Atualizar Fedora 39 para 40
Instalar Google Chrome no Debian e derivados
Consertando o erro do Sushi e Wayland no Opensuse Leap 15
Instalar a última versão do PostgreSQL no Lunix mantendo atualizado
Flathub na sua distribuição Linux e comandos básicos de gerenciamento
Agora temos uma assistente virtual no fórum!!! (247)
iso de sistema 32 bit em atividade (12)
Como adicionar módulo de saúde da bateria dos notebooks Acer ao kernel... (27)