Configurando script de inicialização no openSUSE
Publicado por Wagner Souza em 11/03/2016
[ Hits: 8.051 ]
Blog: https://medium.com/@souzaw
#!/bin/bash # # firewall Start iptables firewall # # chkconfig: 2345 08 92 # description: Starts, stops and saves iptables firewall # # Source function library. . /etc/init.d/functions iniciar(){ #------------- [ Configurações Gerais ] ------------- # Definição das configurações de rede WAN=enp0s3 LAN=enp0s8 REDE="192.168.10.0" MASK="255.255.255.0" # Carregamento de módulos modprobe ip_tables modprobe ip_conntrack modprobe iptable_filter modprobe iptable_mangle modprobe iptable_nat modprobe ipt_LOG modprobe ipt_limit modprobe ipt_state modprobe ipt_REDIRECT modprobe ipt_owner modprobe ipt_REJECT modprobe ipt_MASQUERADE modprobe ip_conntrack_ftp modprobe ip_nat_ftp echo "--> Carregamento de módulos [ OK ]" # Limpa as regras iptables -X iptables -Z iptables -F INPUT iptables -F OUTPUT iptables -F FORWARD iptables -F -t nat iptables -F -t mangle echo "--> Limpando as chains [ OK ]" # Politicas padrão iptables -t filter -P INPUT DROP iptables -t filter -P OUTPUT DROP iptables -t filter -P FORWARD DROP echo "--> Definicao das policies [ OK ]" # Compartilhar a internet echo 1 > /proc/sys/net/ipv4/ip_forward iptables -t nat -A POSTROUTING -o $WAN -j MASQUERADE echo "--> Compartilhamento da internet [ OK ]" #---------------------- [ FIM ] ---------------------- #------------------- [ Liberações ] ------------------ # Liberando a conexão loopbak iptables -t filter -A INPUT -i lo -j ACCEPT iptables -t filter -A OUTPUT -o lo -j ACCEPT echo "--> Liberando a interface de loopback [ OK ]" # Permitindo acesso SSH iptables -t filter -A INPUT -p tcp --dport 22 -j LOG --log-level 6 --log-prefix "SSH: " iptables -t filter -A INPUT -p tcp --dport 22 -j ACCEPT iptables -t filter -A OUTPUT -p tcp --sport 22 -j ACCEPT echo "--> Permitindo acesso SSH [ OK ]" # Liberar acesso do servidor a internet iptables -t filter -A INPUT -m multiport -p tcp --sport 80,443,53,20,21 -j ACCEPT iptables -t filter -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT iptables -t filter -A INPUT -p udp --sport 53 -j ACCEPT iptables -t filter -A OUTPUT -p udp --dport 53 -j ACCEPT echo "--> Liberando a internet para o servidor [ OK ]" # Liberar o servidor DHCP iptables -t filter -A INPUT -m multiport -p tcp --dport 67,68 -j ACCEPT iptables -t filter -A INPUT -m multiport -p udp --dport 67,68 -j ACCEPT # Liberação de portas TCP para a rede local PORTAS_LIBERADAS="20 21 25 53 80 81 110 443 465 587 995 993" for i in $PORTAS_LIBERADAS do iptables -t filter -A FORWARD -s $REDE/$MASK -p tcp --dport $i -j ACCEPT iptables -t filter -A FORWARD -d $REDE/$MASK -p tcp --sport $i -j ACCEPT done # Liberação de portas UDP para a rede local PORTAS_LIBERADAS="20 21 53 587 993 465" for i in $PORTAS_LIBERADAS do iptables -t filter -A FORWARD -s $REDE/$MASK -p udp --dport $i -j ACCEPT iptables -t filter -A FORWARD -d $REDE/$MASK -p udp --sport $i -j ACCEPT done echo "--> Liberando portas TCP/UDP para a LAN [ OK ]" # Liberando ICMP para o servidor e a rede local iptables -t filter -I INPUT -p icmp --icmp-type echo-reply -j ACCEPT iptables -t filter -I FORWARD -p icmp --icmp-type echo-reply -j ACCEPT echo "--> Liberando o ICMP [ OK ]" #---------------------- [ FIM ] ---------------------- #-------------- [ Regras de Proteção ] -------------- echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts echo 1 > /proc/sys/net/ipv4/conf/default/rp_filter echo 1 > /proc/sys/net/ipv4/tcp_syncookies iptables -t filter -A INPUT -m state --state INVALID -j DROP iptables -t filter -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT iptables -t filter -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT iptables -t filter -A FORWARD -m state -p icmp --state INVALID -j DROP # Impedindo ataque Port Scanners na rede e no Firewall iptables -t filter -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT iptables -t filter -I INPUT -p udp --dport 33435:33525 -j LOG --log-level info --log-prefix 'SCANNERS DROPADO>' iptables -t filter -A INPUT -p udp --dport 33435:33525 -j DROP iptables -t filter -I FORWARD -p udp --dport 33435:33525 -j LOG --log-level info --log-prefix 'SCANNERS DROPADO NA REDE>' iptables -t filter -A FORWARD -p udp --dport 33435:33525 -j DROP # Bloquear NetBus na rede iptables -t filter -I INPUT -p tcp --dport 12345 -j LOG --log-level info --log-prefix 'NETBUS >' iptables -t filter -A INPUT -p tcp --dport 12345 -j DROP iptables -t filter -I INPUT -p udp --dport 12345 -j LOG --log-level info --log-prefix 'NETBUS UDP>' iptables -t filter -A INPUT -p udp --dport 12345 -j DROP iptables -t filter -I FORWARD -p tcp --dport 12345 -j LOG --log-level info --log-prefix 'NETBUS NA REDE>' iptables -t filter -A FORWARD -p tcp --dport 12345 -j DROP iptables -t filter -I FORWARD -p udp --dport 12345 -j LOG --log-level info --log-prefix 'NETBUS UDP>' iptables -t filter -A FORWARD -p udp --dport 12345 -j DROP echo "--> Aplicando regras de segurança [ OK ]" #---------------------- [ FIM ] ---------------------- } parar(){ iptables -F iptables -t nat -F iptables -P INPUT ACCEPT iptables -P OUTPUT ACCEPT iptables -P FORWARD ACCEPT echo 0 > /proc/sys/net/ipv4/ip_forward echo "Regras de firewall e compartilhamento desativados" } case "$1" in "start") iniciar ;; "stop") parar ;; "restart") parar; iniciar ;; *) echo "Use os parâtros start ou stop" esac
Limitar acesso de mais de um usuário via SSH
Erro de chave pública ao atualizar Chrome no Fedora 22
Algoritmo para converter minutos em hora
Instalação e configuração do comando sar no OpenSuSe
Shell Script nosso de cada dia - Episódio 1
Personalizando o GNOME - Parte I
Instalando e configurando o SARG - Gerador de relatórios do Squid
Alsactl store: home directory /home/seu_login not ours
Resolvendo de vez os erros envolvendo arquivos .save em /etc/apt/sources.list.d
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
Melhorando a precisão de valores flutuantes em python[AJUDA] (5)
Instalação Uefi com o instalador clássico do Mageia (1)
[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