debian (rc.firewall)
Categoria: Segurança
Software: debian
[ Hits: 23.457 ]
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
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Como realizar um ataque de força bruta para desobrir senhas?
Como usar Gpaste no ambiente Cinnamon
Atualizando o Fedora 42 para 43
Como personalizar o lxde? [RESOLVIDO] (5)
Flatpaks não funcionam após atualizar pelo Gerenciador de Atualizações... (3)
Erro no suitable vídeo mode (15)
Fedora KDE plasma 42 X Módulo de segurança BB (Warsaw-2) (2)









